Subversion-Projekte lars-tiefland.webanos.marine-sales.de

Revision

Revision 413 | Revision 416 | Zur aktuellen Revision | Blame | Vergleich mit vorheriger | Letzte Änderung | Log anzeigen | RSS feed

{block name="maincontent"}
    <!-- $Id: index.tpl 87 2023-05-20 23:09:43Z lars $ BEGIN -->
    <style>
        #artikeluebersicht{
            max-width:100%;
            width:100%;
        }
        .dt-button:hover{
            font-size: 0.88em!important;
        }
        div.export{ float:right; clear:both; padding-top:2%; }
        div.DTTT { margin-bottom: 0.5em; float: right; }
        div.dataTables_wrapper { clear: both; }
        .statusZahl{ float:left;padding-right:1%;margin-top:-1px; }
    </style>
    <script>
        $(function()
        {

            $(".iconToggler").css("cursor", "pointer").on("click", function(e){
                e.preventDefault();

                // Get the column API object
                let columnValue = $(this).attr('data-column');
                columnValue = columnValue.split("_");


                for ( i = 0; i < columnValue.length; i++ ){
                    let column = table.column( columnValue[i] );
                    column.visible( !column.visible() );
                }
            } );

            let table = $('#artikeluebersicht').DataTable({
                "language": {
                    "url": "/js/DataTables-1.10.19/German.json",
                },
                "dom": 'lf<"export"B>rtip',
                "processing": true,
                "serverSide": true,
                "ajax": {
                    "type": "GET",
                    "url" : "/vportale/salesPortalItems/getArtikel",
                    "data": function(d){
                        d.vp_id = $('#vportal_sel').val();
                        d.artikelAnzeige = $("#artikelAnzeigeSelect").val();
                        d.statusSelect = $("#statusSelect").val();
                    }
                },
                "drawCallback": function( settings ) {
                    styleButtons();
                    $(".tooltip").tooltipster({
                        animation: 'fade',
                        delay: 200,
                        theme: 'tooltipster-light',
                        contentAsHTML: true,
                        touchDevices: true,
                        trigger: 'hover'
                    });
                },
                "stateSave": true,
                "buttons": [
                    {
                        extend: 'colvis',
                        text: 'Spalten anzeigen'
                    },
                    {
                        extend: 'csv',
                        text: 'CSV',
                        exportOptions: {
                            modifier: {
                                order: 'current',
                                page: 'current'
                            },
                            columns: ':visible',
                            stripHtml: false,
                            stripNewLines: false
                        },
                        title: 'vPortalArtikel'
                    },
                    {
                        extend: 'excel',
                        text: 'Excel',
                        exportOptions: {
                            modifier: {
                                order: 'current',
                                page: 'current'
                            },
                            columns: ':visible'
                        },
                        title: 'vPortalArtikel',
                        extension: ".xlsx",
                        fnCellRender: function ( sValue, iColumn, nTr, iDataIndex ) {
                            return sValue.replace(/<br\s*\/?>/ig, "\r\n") ;
                        }
                    },
                    {
                        extend: 'pdf',
                        text: 'PDF',
                        exportOptions: {
                            modifier: {
                                order: 'current',
                                page: 'current'
                            },
                            columns: ':visible'
                        },
                        title: 'vPortalArtikel',
                    }

                ],
                "columns":[
                    { "data": "id" },
                    { "data": "sku" },
                    { "data": "foreign_item_id" },
                    { "data": "foreign_catalog_item_id" },
                    { "data": "item_id" },
                    { "data": "name" },
                    { "data": "artstammArtikel"},
                    { "data": "manufacturer"},
                    { "data": "ean" },
                    { "data": "price" },
                    { "data": "currency" },
                    { "data": "price_type" },
                    { "data": "amount" },
                    { "data": "status" },
                    { "data": null }
                ],
                "columnDefs": [
                    { "name": "id", "targets": 0 },
                    { "name": "sku", "targets": 1 },
                    { "name": "foreign_item_id", "targets": 2 },
                    { "name": "foreign_catalog_item_id", "targets": 3 },
                    { "name": "artikel_id", "targets": 4 },
                    { "name": "name", "targets": 5 },
                    {
                        "name": "artstammArtikel",
                        "targets": 6,
                        "render": function ( data, type, row ) {
                            let string = "";
                            if(data != null){
                                string += "<table>";
                                for( let i = 0; i < data.length; i++){
                                    string += "<tr><td>" + data[i]["ID"] + "</td><td>" + data[i]["kurzbezeichnung"] + "</td><td>" + data[i]["menge"] + "</td></tr>";
                                }
                                string += "</table>";
                            }
                            return string;
                        },
                    },
                    { "name": "manufacturer", "targets": 7 },
                    { "name": "ean", "targets": 8 },
                    { "name": "price", "targets": 9 },
                    { "name": "currency", "targets": 10 },
                    { "name": "price_type", "targets": 11 },
                    { "name": "amount", "targets": 12 },
                    {
                        "name": "status",
                        "targets": 13,
                        "render": function ( data, type, row ) {
                            console.log(data);
                            let string = "";
                            string = "<span class='statusZahl'>"+ data["status"] + "</span><span class='ui-icon ui-icon-info tooltip' title='"+data["feedback"]+"'></span>";

                            return string;
                        }
                    },
                    {
                        "name": "aktionen",
                        "targets": 14,
                        "render": function ( data, type, row ) {
                            let string = "";
                            string += data["aktionen"];

                            return string;
                        }
                    },
                    { "orderable": false, "targets": [ 7, 14 ] },
                    { "searchable": false, "targets": [ 6, 14 ] }
                ],
                "lengthMenu": [[100, 150, -1], [100, 150, "Alle"]],
            });
            jQuery.fn.dataTableExt.oSort['currency-asc'] = function(a,b) {
                /* Remove any commas (assumes that if present all strings will have a fixed number of d.p) */
                let x = a == "-" ? 0 : a.replace( /,/g, "" );
                let y = b == "-" ? 0 : b.replace( /,/g, "" );

                x = x.replace(/\./g, "");
                y = y.replace(/\./g, "");

                /* Parse and return */
                x = parseFloat( x );
                y = parseFloat( y );
                return x - y;
            };

            jQuery.fn.dataTableExt.oSort['currency-desc'] = function(a,b) {
                /* Remove any commas (assumes that if present all strings will have a fixed number of d.p) */
                let x = a == "-" ? 0 : a.replace( /,/g, "" );
                let y = b == "-" ? 0 : b.replace( /,/g, "" );

                x = x.replace(/\./g, "");
                y = y.replace(/\./g, "");

                /* Parse and return */
                x = parseFloat( x );
                y = parseFloat( y );
                return y - x;
            };

            jQuery.fn.dataTableExt.oSort['num-html-asc'] = function(a,b) {
                let x = a.replace( /<.*?>/g, "" );
                let y = b.replace( /<.*?>/g, "" );
                x = parseFloat( x );
                y = parseFloat( y );
                return ((x < y || isNaN(y) ) ? -1 : ((x > y || isNaN(x)) ? 1 : 0));
            };
            jQuery.fn.dataTableExt.oSort['num-html-desc'] = function(a,b) {
                let x = a.replace( /<.*?>/g, "" );
                let y = b.replace( /<.*?>/g, "" );
                x = parseFloat( x );
                y = parseFloat( y );
                return ((x < y || isNaN(x)) ? 1 : ((x > y || isNaN(y) ) ? -1 : 0));
            };

            $("#artikeluebersicht").delegate( "button.assign","click", assign_artikel);
            $("#artikeluebersicht").delegate( "button.edit","click", edit_artikel);
            $("#artikeluebersicht").delegate( "button.del","click", del_artikel);
            $("#artikeluebersicht").delegate( "button.lock","click", lock_artikel);
            $("#artikeluebersicht").delegate( "button.bestandsUpdate","click", bestandsUpdate);

            $('#artikelAnzeigeSelect, #statusSelect').change( function() {
                table.draw();
            } );


            table.on( 'column-visibility.dt', function ( e, settings, column, state ) {
                if( column == 14 && state == true ){
                    styleButtons();
                }
            });

            function styleButtons(){

                $('.edit').button({
                    icons: {
                        primary: "ui-icon-pencil"
                    }
                })

                $('.del').button({
                    icons: {
                        primary: "ui-icon-trash"
                    }
                })

                $('.lock').button({
                    icons: {
                        primary: "ui-icon-locked"
                    }
                })

                $('.assign').button({
                    icons: {
                        primary: "ui-icon-transfer-e-w"
                    }
                })

                $('.bestandsUpdate').button({
                    icons: {
                        primary: "ui-icon-arrowrefresh-1-e"
                    }
                })
            }


            $('#vportale_artikel_dlg').dialog({
                autoOpen: false,
                resizable: false,
                modal: true,
                width: "80%",
                height:600,
                maxHeight:670,
                minWidth:600,
                buttons: {
                    "speichern": function()
                    {
                        let valid = $('#vportale_artikel_form').validate()//.form();

                        if (valid)
                        {
                            $('#vportale_artikel_content').load("vportale_artikel.php",$('#vportale_artikel_form').serializeArray(),function(html){
                                //alert(html);
                            });
                            $('#vportale_artikel_dlg').empty().dialog("close");
                        }
                    },
                    "abbrechen": function()
                    {
                        $('#vportale_artikel_dlg').empty().dialog("close");
                    }
                }


            });

            function lock_artikel()
            {
                let a_id = this.id;
                a_id = a_id.split("_");
                a_id = a_id[1];
                let url="vportale_artikel.php?action=lock&id=" + a_id;
                $('#vportale_artikel_content').load(url,{
                    vp_id:$('#vportal_sel').val()
                });
            }

            function edit_artikel()
            {

                let a_id = this.id;
                a_id = a_id.split("_");
                a_id = a_id[1];

                $('#vportale_artikel_dlg').html("<div style='margin-top:20%'><center><img src='/images/loading.gif'><br>Lade. Bite warten...</center></div>")
                    .load("vportale_artikel.php?action=edit&id=" + a_id+"&vp_id="+$('#vportal_sel').val())
                    .dialog("open");

            }

            function assign_artikel(e)
            {

                let fremdartikel_id = this.id;
                fremdartikel_id = fremdartikel_id.split("_");
                fremdartikel_id = fremdartikel_id[1];

                let vportal_id = $("#vportal_id").val();

                $('<div id="vportalAssignDialog">').dialog({
                    resizable: false,
                    modal: true,
                    width:"80%",
                    open: function(){
                        vportal_id = $("#vportal_id").val();
                        $(this).load("vportale_artikel.php?action=assign&fremdartikel_id=" + fremdartikel_id + "&vportal_id=" + vportal_id, function(){
                            $("#bezeichnung", this).trigger("keyup");
                        });
                    },
                    close: function() {
                        $('#vportalAssignDialog').empty().remove();
                    },
                    buttons: {
                        "speichern": function()
                        {
                            /*let valid = $('#vportale_artikel_form').validate({
                                debug: false,
                                errorClass: "error_upd"
                            }).form();*/

                            //if (valid)
                            {
                                $('#vportale_artikel_content').load("vportale_artikel.php",$('#vportale_artikel_form').serializeArray());
                                $('#vportalAssignDialog').empty().remove();
                            }
                        },
                        "abbrechen": function()
                        {
                            $("#vportalAssignDialog").empty().remove();
                        }
                    }
                });
                //e.stopPropagation();
            }

            function del_artikel()
            {
                let vpa_id = this.id;
                vpa_id = vpa_id.split("_");
                let vpa_name = vpa_id[2];
                vpa_id = vpa_id[1];
                $('#vportale_artikel_del_dlg').dialog(
                    {
                        modal: true,
                        width: 400,
                        resizable: false,
                        title: "Verkaufsportal-Artikel " + vpa_name + " löschen",
                        buttons: {
                            "Nein": function()
                            {
                                $(this).dialog("close");
                            },
                            "Ja": function()
                            {
                                let url="/vportale/vportale_artikel.php?action=del&id=" + vpa_id
                                $.get(url,function() {
                                    url="/vportale/vportale_artikel.php?action=list"+"&vp_id="+$('#vportal_sel').val();
                                    $('#vportale_artikel_content').load(url);
                                    $("#vportale_artikel_del_dlg").dialog("close");
                                });
                            }
                        }
                    })
            }

            function bestandsUpdate(){
                let fremdartikel_id = this.id;
                fremdartikel_id = fremdartikel_id.split("_");
                let vportal_id = fremdartikel_id[2];
                fremdartikel_id = fremdartikel_id[1];
                $('<div id="vportalAssignDialog">').dialog({
                    "modal"  : true,
                    "width"  : "300",
                    "height" : "300",
                    "open"   : function(){
                        $(this).load("bestandsUpdate.php?fremdartikel_id="+fremdartikel_id);
                    },
                    "close"  : function() {
                        $(this).empty().remove();
                    },
                    "buttons": {
                        "Beenden": function()
                        {
                            $(this).empty().remove();
                            $('#vportale_artikel_content').load("vportale_artikel.php?action=list"+"&vp_id="+vportal_id);
                        }
                    }
                });
            }
        })
    </script>
    <table style="float: left;">
        <tbody>
        <tr>
            <td class="links">
                <label for="artikelAnzeigeSelect">Artikelart</label>
            </td>
            <td class="rechts">
                <select id="artikelAnzeigeSelect">
                    <option value="-1" {if $smarty.session.artikelAnzeigeSelect == -1}selected{/if} >- alle -</option>,
                    <option value="1" {if $smarty.session.artikelAnzeigeSelect == 1}selected{/if}>zugewiesen</option>
                    <option value="2" {if $smarty.session.artikelAnzeigeSelect == 2}selected{/if}>nicht zugewiesen</option>
                </select>
            </td>
        </tr>
        <tr>
            <td class="links">
                <label for="statusSelect">Status</label>
            </td>
            <td class="rechts">
                <select id="statusSelect" name="status">
                    {html_options options=$statusSelect}
                </select>
            </td>
        </tr>
        <tr>
            <td colspan="2">&nbsp;</td>
        </tr>
        <tr>
            {if isset($leistungsdatum)}
                <td>Leistungsdatum:</td>
                <td>{html_options options=$zeitraum name="leistungsdatum" id="leistungsdatumSelect" selected=0}</td>
            {/if}
        </tr>
        </tbody>
    </table>

    <table id="artikeluebersicht" class="table-striped table-bordered display" style="margin-top:10px;float:left;">
        <thead>
        <tr>
            <th>ID</th>
            <th>SKU</th>
            <th>fremde<br>Art.-Nr.</th>
            <th>fremde Katalog-Art.-Nr.</th>
            <th>Artikel-ID</th>
            <th>Name</th>
            <th>Artikelstamm-Artikel</th>
            <th>Hersteller</th>
            <th>EAN</th>
            <th>Preis</th>
            <th>Währung</th>
            <th>Preisart</th>
            <th>Menge</th>
            <th>Status</th>
            <th>Aktionen</th>
        </tr>
        </thead>
    </table>
    <input type="hidden" id="vportal_id" value="" />

    <div id="vportale_artikel_dlg" title="Artikel anlegen / ändern">
    </div>
    <div id="link_cat_dlg" title="Kategorie auswählen">
    </div>

    <div id="vportale_artikel_del_dlg" style="display:none">
        Wollen Sie diesen Artikel wirklich löschen?
    </div>
    <!-- $Id: index.tpl 87 2023-05-20 23:09:43Z lars $ END -->
{/block}