Subversion Repositories SmartDukaan

Rev

Rev 32771 | Blame | Compare with Previous | Last modification | View Log | RSS feed

<style>

    .table-striped > tbody > tr:nth-child(odd) > td {
        background: white;
        background-color: white;
        font-size: 14px;
    }

    .table-striped > tbody > tr:nth-child(even) > td {
        background: white;
        background-color: white;
    }

    .table-striped > tbody > tr:hover > td,
    .table-striped > tbody > tr:hover {
        background-color: #e98c8f;
        color: white;
    }

    .btn:hover,
    .btn:focus {
        color: grey;
        text-decoration: none;
    }

    .modal-content {
        background: white;
    }

    .modelHeaderCustom {
        font-size: 14px;
        font-weight: bold;
    }

    hr {
        background-color: #007aff;
        border: none;
        height: 1px;
        background: #007aff;
    }

    .border-highlight {
        border: 3px solid red;
    }
</style>

<section class="wrapper">
    <!--overview start-->
    <div class="row">
        <div class="col-lg-12">
            <h3 class="page-header"><i class="icon_document_alt"></i>GRN</h3>
            <ol class="breadcrumb">
                <li><i class="fa fa-home"></i><a href="${rc.contextPath}/dashboard">#springMessage("grn.home")</a></li>
                <li><i class="icon_document_alt"></i>#springMessage("grn.new")</li>
                <!--Training Video -->
                <li><a href="#videoModal" class="btn btn-danger" data-toggle="modal" data-src="o6GyFxS8jUo"><span
                        class="glyphicon glyphicon-play-circle"></span> #springMessage("grn.playvideo")</a></li>
            </ol>
        </div>
    </div>
    <!--<form class="form-horizontal row" id="purchase-reference-submit-form">-->
    <div class="col-lg-9 row">
        <label class="col-lg-3 control-label font-bold" style="text-align:center;font-weight:600;">#springMessage("grn.invoiceno")</label>
        <div class="input-group col-lg-6">
            #if($airwayBillOrInvoiceNumber)
                #set($value = $airwayBillOrInvoiceNumber)
            #else
                #set($value = "")
            #end
            <input type="text" class="form-control" name="airwayBillOrInvoiceNumber" value="$value"
                   id="airwayBillOrInvoiceNumberText" placeholder="Enter invoice Number"/>
            <span class="input-group-btn">
                <button class="btn btn-primary" id="purchase-reference-submit-button"
                        onclick="getPurchaseByInvoiceNumber()">#springMessage("grn.submit")</button>
             </span>
        </div>
    </div>
    <!--</form>-->
    #if($customItems && $customItems.size() > 0)
        #if($totalImeisCount && $totalImeisCount > 0)
            <div class="row col-lg-12">
                <br>
                <h4>
                    Add imeis (<span id="scanleft">0</span>/$totalImeisCount)
                </h4>
                <div id="invalid-imeis-container" style="display:none">
                    <div id="invalid-imeis" class="col-lg-12" style="color: red">
                    </div>
                </div>
            </div>
            <div class="row">
                <div class="col-lg-6">
                    <input type="text" id="all-imeis" placeholder="">
                </div>
                <div class="col-lg-3">
                    <button class="btn btn-primary" id="grnPartial" onclick="grnPartial('$invoiceNumber')">Add IMEI!
                    </button>
                </div>
            </div>
        #else
            <div class="row col-lg-9">
                <h4 style="color:green">All imeis/serial numbers are added</h4>
            </div>
        #end
        <div class="row">
            <div class="col-lg-12">
                <table class="table table-striped table-advance table-hover">
                    <tbody>
                    <tr>
                        <th>Brand</th>
                        <th>Model Name</th>
                        <th>Model Number</th>
                        <th>Color</th>
                        <th>Quantity</th>
                        <th>Unit Price</th>
                        <th>GRN</th>
                    </tr>
                        #foreach( $customItem in $customItems )
                            #set($customLineItem = $customItem.getItemDetail())
                        <tr>
                            <td>$customLineItem.getBrand()</td>
                            #if($customLineItem.getModelName())
                                <td>$customLineItem.getModelName()</td>
                            #else
                                <td>-</td>
                            #end
                            #if($customLineItem.getModelNumber())
                                <td>$customLineItem.getModelNumber()</td>
                            #else
                                <td>-</td>
                            #end
                            #if($customLineItem.getColor())
                                <td>$customLineItem.getColor()</td>
                            #else
                                <td>-</td>
                            #end
                            <td>$customLineItem.getQuantity()</td>
                            <td>$customLineItem.getUnitPrice()</td>
                            #if($customItem.isScanned())
                                <td class="grnDone"><a class="btn btn-primary" href="javascript:void(0)"><i
                                        class="icon_check_alt2"></i></a></td>
                            #else
                                #if($customItem.getType() == "SERIALIZED")
                                    <td class="startGrnSerialized" itemId="$customItem.getItemId()"
                                        displayName="$customLineItem.getDisplayName()" invoiceNumber="$invoiceNumber"
                                        quantity="$customLineItem.getQuantity()">
                                        <a class="btn btn-primary" data-toggle="modal"
                                           data-target="#scanModel"
                                           data-serial_numbers="$customLineItem.getSerialNumbers()"><i
                                                class="icon_plus_alt2"></i></a></td>
                                #else
                                    <td class="startGrnNonSerialized" itemId="$customItem.getItemId()"
                                        displayName="$customLineItem.getDisplayName()" invoiceNumber="$invoiceNumber"
                                        quantity="$customLineItem.getQuantity()"><a class="btn btn-primary"
                                                                                    data-toggle="modal"
                                                                                    data-target="#scanNonSerializedModel"><i
                                            class="icon_plus_alt2"></i></a></td>
                                #end
                            #end
                        </tr>
                        #end
                    </tbody>
                </table>
            </div>
        </div>

        <div id="scanModel" class="modal" role="dialog">
            <div class="modal-dialog modal-lg">
                <!-- Modal content-->
                <div class="modal-content">
                    <div class="modal-header">
                        <button type="button" class="close" data-dismiss="modal">&times;</button>
                        <h4 class="modal-title">Enter GRN Details</h4>
                    </div>
                    <div class="modal-body" style="max-height: 600px;overflow: scroll">
                        <input type="hidden" class="invoiceNumber"/>
                        <input type="hidden" class="itemId"/>
                        <h4 class="modelHeaderCustom">Item Type : <span>SERIALIZED</span></h4>
                        <h4 class="grnInvoiceNumber modelHeaderCustom">Invoice Number : <span></span></h4>
                        <h4 class="grnProductInfo modelHeaderCustom">Product Details : <span></span></h4>
                        <h4 class="modal-title">Enter Serial Numbers</h4>
                        <div id="grnImeiInformation">
                        </div>
                        <hr/>
                        <button type="submit" id="grnSubmitSerialized" class="btn btn-primary">Check and Submit!
                        </button>
                    </div>
                    <div class="modal-footer">
                        <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
                    </div>
                </div>
            </div>
        </div>

        <div id="scanNonSerializedModel" class="modal" role="dialog">
            <div class="modal-dialog modal-lg">
                <!-- Modal content-->
                <div class="modal-content">
                    <div class="modal-header">
                        <button type="button" class="close" data-dismiss="modal">&times;</button>
                        <h4 class="modal-title">Enter GRN Details</h4>
                    </div>
                    <div class="modal-body">
                        <input type="hidden" class="invoiceNumber"/>
                        <input type="hidden" class="itemId"/>
                        <h4 class="modelHeaderCustom">Item Type : <span>NON-SERIALIZED</span></h4>
                        <h4 class="grnInvoiceNumber modelHeaderCustom">Invoice Number : <span></span></h4>
                        <h4 class="grnProductInfo modelHeaderCustom">Product Details : <span></span></h4>
                        <h4 class="modal-title">Enter Quantity</h4>
                        <div class="row">
                            <div class="col-sm-3">
                                <div class="input-group"><input type="text" class="quantity form-control"></input></div>
                            </div>
                        </div>
                        <hr/>
                        <span class="input-group-btn">
                                                <button type="submit" id="grnNonSerializedSubmit" class="btn btn-primary">Submit!</button>
                                </span>
                    </div>
                    <div class="modal-footer">
                        <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
                    </div>
                </div>
            </div>
        </div>

        </div>
    #end

</section>

<script>
    $(function () {
        //debugger;
        imeisToValidate = [];
        let imeiInputElem = $("#all-imeis");
        imeiInputElem.tagsinput({
            maxTags:`$totalImeisCount`,
            trimValue: true,
            allowDuplicates: false,
            confirmKeys: [13, 44, 188, 32],
            delimiterRegex: ',',
            tagClass: function (item) {
                if (item.valid == null) return 'label label-primary';
                if (item.valid) {
                    return 'label label-success';
                } else {
                    return 'label label-danger';
                }
            },
        });
        const debouncedCallback = debounce(function () {
            $("#invalid-imeis").html('');
            let imeisJson = {
                serialNumbers: imeisToValidate,
                invoiceNumber: "$invoiceNumber"
            }
            doPostAjaxRequestWithJsonHandler(`${context}/purchase/validate-imeis`, JSON.stringify(imeisJson), function (data) {
                imeiData = data.response;
                let invalidImeis = [];
                for (let imeiIndex in imeisToValidate) {
                    let imei = imeisToValidate[imeiIndex];
                    let isValid = imeiData[imeisToValidate[imeiIndex]];
                    if (!isValid) {
                        imeiInputElem.tagsinput('remove', imei);
                        invalidImeis.push(imei);
                    }
                }
                $("#invalid-imeis").html(invalidImeis.join(','));
                invalidImeis = []
                $("#invalid-imeis-container").show();
                $("#scanleft").html($("#all-imeis").tagsinput('items').length);
                imeisToValidate = [];
            });
        }, 300);
        imeiInputElem.on('itemAdded', (event) => {
            imeisToValidate.push(event.item);
            debouncedCallback();
        });
        imeiInputElem.on('beforeItemAdd', (event) => {
            if (event.item.indexOf(' ') > 0) {
                event.cancel = true;
                let strItem = event.item.replaceAll(' ', '');
                imeiInputElem.tagsinput('add', strItem);
            }
        });

    });

</script>