Subversion Repositories SmartDukaan

Rev

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

<style>
    .tdInput .bootstrap-tagsinput {
        width: 100%;
    }
</style>
<div class="well" style="padding: 10px;">
    <p><b>#<span id="selectedTransactionId"></span> - Order List</b></p>
    #if($address)
        <p><b>Address - $address.getAddressDescription()</b></p>
    #else
        <p><b>Address - $oneOrder.getRetailerAddress1(),$oneOrder.getRetailerAddress2(),$oneOrder.getRetailerState(),$oneOrder.getRetailerPinCode()</b></p>
    #end
    <input type="hidden" id="selectedWarehouseId">
    <input type="hidden" id="samePinCheck">
    <h4>In Stock </h4>
    <table id="wareHouseTransactionTable" class="table table-striped table-advance table-hover" style="width:100%">
        <thead>
        <tr>
            <th>Id</th>
            <th>Item Id</th>
            <th>Product Desc</th>
            <th>Qty</th>
            <th>U.Price</th>
            <th>Imeis/Qty to Bill</th>
            <th>Action</th>
        </tr>
        </thead>
        <tbody>
            #if(!$inStockOrdersSerialized.isEmpty())
                #foreach($order in $inStockOrdersSerialized)
                <tr class="main-tr">
                    <td class="orderId">$order.getId()</td>
                    <td>$order.getLineItem().getItemId()</td>
                    <td>$order.getLineItem().getItemDescription()</td>
                    <td><span class="remainQty">0</span> / <span class="qty">$order.getLineItem().getQuantity()</span>
                    </td>
                    <td>$order.getLineItem().getUnitPrice()</td>
                    #if($order.getLineItem().getItem().getType()=="SERIALIZED")
                        <td style="width: 35%;" class="tdInput"><input type="text" class="imeis-to-grn form-control"
                                                                       placeholder=""></td>
                    #end
                    <td>
                        <button type="button" class="btn btn-primary btn-sm changeWarehouse-mk" data-toggle="modal"
                                data-target="#changeWarehouseModal" data-OrderId="$order.getId()"
                                data-itemId="$order.getLineItem().getItemId()"
                                data-warehouseId="$order.getWarehouseId()">
                            Change Billing Warehouse
                        </button>
                        <br>
                        <button type="button" class="btn btn-primary btn-sm mk_moveToBill" data-orderid="$order.getId()"
                                data-warehouseid="$order.getWarehouseId()"
                                data-transactionid="$order.getTransactionId()">Move to Bill
                        </button>
                    </td>
                </tr>
                    #foreach($agingModelEntry in $allOrderSerialNumberMap.entrySet())
                        #if($agingModelEntry.getKey() == $order.getId())
                            #set($agingModelMap = $agingModelEntry.getValue())
                            #foreach($agingModel in $agingModelMap.entrySet())
                                #set($agingModelValueMap = $agingModel.getValue())
                                #set($counter = 0)
                                #foreach ($aging in $agingModelValueMap.entrySet())
                                    #if($agingModelValueMap)
                                    <tr>
                                        <td colspan="7">
                                            <table class="table table-responsive table-bordered"
                                                   style="margin-bottom: 0;">
                                                <tbody>

                                                <tr>
                                                    <td style="width: 20%;"><span><b>Age : </b></span>$aging.getKey()
                                                        Days Old
                                                    </td>
                                                    <td>

                                                        #foreach ($value in $aging.getValue())
                                                            <input type="hidden" class="agingserialNumber"
                                                                   data-ageingid="$counter"
                                                                   value="$value.getSerialNumber()">
                                                            <span>$value.getMorphSerialNumber(),</span>
                                                        #end
                                                    </td>
                                                </tr>

                                                </tbody>

                                            </table>
                                        </td>
                                        #set($counter = $counter + 1)
                                    </tr>
                                    #end

                                #end

                            #end
                        #end
                    #end
                #end
            #end
            #if(!$inStockOrdersNonSerialized.isEmpty())
                #foreach($order in $inStockOrdersNonSerialized)
                <tr class="main-tr">
                    <td class="orderId">$order.getId()</td>
                    <td>$order.getLineItem().getItemId()</td>
                    <td>$order.getLineItem().getItemDescription()</td>
                    <td><span class="remainQty">0</span> / <span class="qty">$order.getLineItem().getQuantity()</span>
                    </td>
                    <td>$order.getLineItem().getUnitPrice()</td>
                    <td><input type="text" class="form-control filledQty" placeholder="Fill Qty"></td>
                    <td>
                        <button type="button" class="btn btn-primary btn-sm changeWarehouse-mk" data-toggle="modal"
                                data-target="#changeWarehouseModal" data-OrderId="$order.getId()"
                                data-itemId="$order.getLineItem().getItemId()"
                                data-warehouseId="$order.getWarehouseId()">
                            Change Billing Warehouse
                        </button>
                        <br>
                        <button type="button" class="btn btn-primary btn-sm mk_moveToBill" data-orderid="$order.getId()"
                                data-warehouseid="$order.getWarehouseId()"
                                data-transactionid="$order.getTransactionId()">Move to Bill
                        </button>
                    </td>
                </tr>
                <tr>
                    <td colspan="7">Available Quantity :
                        $orderIdStockAvailabilityMap.getOrDefault($order.getId(),0)</td>
                </tr>
                #end
            #end
            #if($inStockOrdersSerialized.isEmpty() && $inStockOrdersNonSerialized.isEmpty())
            <tr>
                <td colspan="7"> No Order Found</td>
            </tr>
            #end
        </tbody>
    </table>
    #if(!$inStockOrdersSerialized.isEmpty() || !$inStockOrdersNonSerialized.isEmpty())
        <div class="row">
            <div class="col-md-12">
                <div class="form-group row">
                    <label for="inputEmail3" class="col-sm-2 col-form-label">$oneOrder.getRetailerCity()
                        , $oneOrder.getRetailerState() - $oneOrder.getRetailerPinCode()</label>
                    <div class="col-sm-3">
                        <select class="form-control mk_provider">
                            <option selected>Choose Provider</option>
                            #foreach($warehouseProvider in $warehouseProviders)
                                <option value="$warehouseProvider.getGstin()" data-providerid="$warehouseProvider.getProviderId()">
                                    $warehouseProvider.getProviderName()
                                </option>
                            #end
                        </select>
                    </div>
                    <div class="col-sm-3 mk_self" style="display: none">
                        <input class="form-control mk_vehicleNumber" type="text" placeholder="Vehicle No. UP16XX"
                               />
                    </div>
                    <div class="col-sm-3 mk_rider" style="display: none">
                        <select class="form-control">
                            <option selected>Choose Rider</option>
                            #foreach($rider in $riders)
                                <option value="$rider.getVehicleNumber()">
                                    $rider.getRiderName() - $rider.getVehicleNumber()
                                </option>
                            #end
                        </select>
                    </div>
                    <div class="col-sm-2 mk_distanceField" style="display: none">
                        <input class="form-control mk_distanceValue" type="text" placeholder="enter approx distance"
                        />
                    </div>
                    <div class="col-sm-4 pull-right">
                        <button type="button" class="btn btn-info pull-right order_accepted">Generate Bill</button>
                    </div>
                </div>

            </div>
        </div>
    #end

</div>
<div class="clearfix"></div><br>
<div class="well" style="padding: 10px;">
    <h4>Out of Stock </h4>
    <table id="wareHouseOutOfStockTransactionTable" class="table table-striped table-advance table-hover"
           style="width:100%">
        <thead>
        <tr>
            <th>Id</th>
            <th>Item Id</th>
            <th>Desc</th>
            <th>Qty</th>
            <th>U.Price</th>
            <th>Action</th>
        </tr>
        </thead>
        <tbody>
            #if(!$oOSOrdersSerialized.isEmpty())
                #foreach($order in $oOSOrdersSerialized)
                <tr class="main-tr">
                    <td class="orderId">$order.getId()</td>
                    <td>$order.getLineItem().getItemId()</td>
                    <td>$order.getLineItem().getItemDescription()</td>
                    <td><span class="remainQty">0</span> / <span class="qty">$order.getLineItem().getQuantity()</span>
                    </td>
                    <td>$order.getLineItem().getUnitPrice()</td>
                    <td>
                        <button type="button" class="btn btn-primary btn-sm changeWarehouse-mk" data-toggle="modal"
                                data-target="#changeWarehouseModal" data-OrderId="$order.getId()"
                                data-itemId="$order.getLineItem().getItemId()"
                                data-warehouseId="$order.getWarehouseId()">
                            Change Billing Warehouse
                        </button>
                        <br/>
                        <button type="button" class="btn btn-primary btn-sm mk_moveToBill" data-orderid="$order.getId()"
                                data-warehouseid="$order.getWarehouseId()"
                                data-transactionid="$order.getTransactionId()">Move to Bill
                        </button>
                    </td>
                </tr>
                #end
            #end
            #if(!$outOfStockOrdersNonSerialized.isEmpty())
                #foreach($order in $outOfStockOrdersNonSerialized)
                <tr class="main-tr">
                    <td class="orderId">$order.getId()</td>
                    <td>$order.getLineItem().getItemId()</td>
                    <td>$order.getLineItem().getItemDescription()</td>
                    <td><span class="remainQty">0</span> / <span class="qty">$order.getLineItem().getQuantity()</span>
                    </td>
                    <td>$order.getLineItem().getUnitPrice()</td>
                    <td>
                        <button type="button" class="btn btn-primary btn-sm changeWarehouse-mk" data-toggle="modal"
                                data-target="#changeWarehouseModal" data-OrderId="$order.getId()"
                                data-itemId="$order.getLineItem().getItemId()"
                                data-warehouseId="$order.getWarehouseId()">
                            Change Billing Warehouse
                        </button>
                        <br>
                        <button type="button" class="btn btn-primary btn-sm mk_moveToBill" data-orderid="$order.getId()"
                                data-warehouseid="$order.getWarehouseId()"
                                data-transactionid="$order.getTransactionId()">Move to Bill
                        </button>
                    </td>
                </tr>
                #end
            #end
            #if($outOfStockOrders.isEmpty() && $outOfStockOrdersNonSerialized.isEmpty())
            <tr>
                <td colspan="6"> No Order Found</td>
            </tr>
            #end
        </tbody>
    </table>
</div>

##bootstrap popup
<div class="modal fade" id="changeWarehouseModal" role="dialog">
    <div class="modal-dialog modal-sm">

        <!-- Modal content-->
        <div class="modal-content">
            <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal">&times;</button>
                <h4 class="modal-title">Change Warehouse</h4>
            </div>
            <div class="modal-body">
                #if($email== 'vinay.p@smartdukaan.com')
                    <select class="form-control all-warehouse-map" id="selectedFromBillingWarehouse">
                        <option value="" disabled selected>Choose Warehouse</option>
                        #foreach($warehouse in $warehouseMap.entrySet())
                            <option value="$warehouse.getKey()">$warehouse.getValue()</option>
                        #end
                    </select>
                #else
                    <div class="brand-mapping-warehouse-mk"></div>
                #end

            </div>
            <div class="modal-footer">
                <button type="button" class="btn btn-info change-warehouse-save-mk" data-dismiss="modal">Submit</button>
            </div>
        </div>

    </div>
</div>

<script>
    $(document).ready(function () {
        $("#wareHouseTransactionTable > tbody > tr").each(function () {
            var qtyElem = $(this).find(".qty");
            var remainQtyElem = $(this).find(".remainQty");
            var qty = parseInt(qtyElem.text()); // Get initial quantity
            var imeiInputElem = $(this).find(".imeis-to-grn");

            imeiInputElem.on('itemAdded itemRemoved', function () {
                remainQtyElem.text(imeiInputElem.tagsinput('items').length); // Update displayed quantity
            });

            imeiInputElem.tagsinput({
                maxTags: qty,
                trimValue: true,
                allowDuplicates: false,
                confirmKeys: [13, 44, 188, 32],
                delimiterRegex: /[,\s]/,
                tagClass: function (item) {
                    if (item.valid == null) return 'label label-primary';
                    if (item.valid) {
                        return 'label label-success';
                    } else {
                        return 'label label-danger';
                    }
                },
            });

            imeiInputElem.on('itemAdded', function (event) {
                var enteredValue = event.item;
                const inputValues = (imeiInputElem.val()).split(',');
                var serialNumbers = []; // Array to store all aging serial numbers within this row
                var ageingSerials = {}; // Array to store all aging serial numbers within this row

                // Collect all aging serial numbers within this row
                imeiInputElem.closest("tr").nextUntil('.main-tr').find(".agingserialNumber").each(function (row, index) {
                    var ageing = $(this).data('ageingid');
                    serialNumbers.push($(this).val().toLowerCase());
                    if (!ageingSerials.hasOwnProperty(ageing)) {
                        ageingSerials[ageing] = [];
                    }
                    ageingSerials[ageing].push($(this).val());
                });

                console.log("ageingSerials number {}", ageingSerials);

                if (!serialNumbers.includes(enteredValue.toLowerCase())) {
                    $('.bootstrap-tagsinput').find('.tag').last().removeClass('label-primary');
                    $('.bootstrap-tagsinput').find('.tag').last().addClass('label-danger');
                    $(".order_accepted").prop("disabled", true);
                    alert('Entered Imeis is not matching with stock Imeis')

                    // Remove the incorrect tag after alert
                    imeiInputElem.tagsinput('remove', enteredValue);

                } else {
                    $(".order_accepted").prop("disabled", false);
                }
            });


        });

        $("select.mk_provider").change(function () {
            $('div.mk_rider').hide();
            $('div.mk_self').hide();
            $('div.mk_distanceField').hide();
            let providerId = $(this).val();
            if (providerId == SELF_PICKUP) {
                $('div.mk_rider').hide();
                $('div.mk_distanceField').hide();
                $('div.mk_self').show();
            } else if (providerId == RUNNER) {
                var transactionId = $("#selectedTransactionId").text();
                var warehouseId = $("#selectedWarehouseId").val();
                console.log("transactionId - ",transactionId);
                console.log("warehouseId - ",warehouseId);
                $('div.mk_self').hide();
                $('div.mk_rider').show();
                checkSamePincodeAndGiveDistanceField(transactionId,warehouseId);

            }
        });
    });
</script>