Subversion Repositories SmartDukaan

Rev

Rev 33451 | Rev 34373 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
33261 ranu 1
var authorisedWarehouses = [];
33741 amit.gupta 2
const SELF_PICKUP = "4";
3
const RUNNER = "5";
33261 ranu 4
 
33247 ranu 5
$(function () {
6
    $(document).on('click', ".warehouse-management", function () {
33261 ranu 7
        getAuthorisedWarehouseList(function (warehouseId) {
33247 ranu 8
            loadAllTransaction(warehouseId, "main-content");
9
        });
10
 
11
    });
12
 
33261 ranu 13
    $(document).on('change', "#selectedWarehouse", function () {
14
        var warehouseId = $(this).val();
15
        loadAllTransaction(warehouseId, "main-content");
16
    });
17
 
33247 ranu 18
    $(document).on('click', ".order_by_transaction", function () {
19
        var transactionId = $(this).data("transaction");
20
        var warehouseId = $("#selectedWarehouse").val();
33269 ranu 21
 
22
        // add and remive active class
23
        $(this).addClass("active-tr");
24
 
25
        $(".order_by_transaction").not(this).removeClass("active-tr");
26
 
33247 ranu 27
        loadTransactionDetail(transactionId, warehouseId, "transaction-detail-container");
28
    });
29
 
33257 ranu 30
    $(document).on('click', ".change-warehouse-save-mk", function () {
31
        var selectedFromBillingWarehouse = $("#selectedFromBillingWarehouse").val();
32
        var orderId = $("#selectedFromBillingWarehouse").data('orderid');
33
        doPostAjaxRequestHandler(context + `/om/changeBillingWarehouse/?billingFromWarehouseId=${selectedFromBillingWarehouse}&orderId=${orderId}`, function (response) {
34
            if (response.response === true) {
35
                var warehouseId = $("#selectedWarehouse").val();
36
                loadAllTransaction(warehouseId, "main-content");
37
            } else {
38
                alert('Something went wrong');
39
            }
40
 
41
        });
42
    });
43
 
33403 amit.gupta 44
    $(document).on('click', ".mk_moveToBill", function () {
45
        var warehouseId = $(this).data("warehouseid");
33404 amit.gupta 46
        var transactionId = $(this).data("transactionid");
33403 amit.gupta 47
        var orderId = $(this).data("orderid");
48
        doGetAjaxRequestHandler(`${context}/om/moveToBill?warehouseId=${warehouseId}&orderId=${orderId}`, function (response) {
33404 amit.gupta 49
            loadTransactionDetail(transactionId, warehouseId, "transaction-detail-container");
33403 amit.gupta 50
        });
51
    });
33257 ranu 52
    $(document).on('click', ".changeWarehouse-mk", function () {
53
        var itemId = $(this).data("itemid");
54
        var warehouseId = $(this).data("warehouseid");
55
        var orderId = $(this).data("orderid");
56
        console.log('warehouse', warehouseId);
57
        console.log('itemId', itemId);
33356 ranu 58
        doGetAjaxRequestHandler(`${context}/om/formWarehouseByItemId/?warehouseId=${warehouseId}&itemId=${itemId}&orderId=${orderId}`, function (response) {
33257 ranu 59
            console.log(response);
60
            if (response && response.response && Array.isArray(response.response)) {
33261 ranu 61
                console.log("response2222 warehouse", response.response);
33387 amit.gupta 62
                if (response.response.length > 0) {
33261 ranu 63
                    var selectOptions = '';
64
                    response.response.forEach(function (warehouse) {
65
                        selectOptions += `<option value="${warehouse.warehouseFrom}">${warehouse.warehouseFromName}</option>`;
66
                    });
67
                    // Populate the modal with the select dropdown
33451 ranu 68
                    $('#changeWarehouseModal .modal-body .brand-mapping-warehouse-mk').html(`<select id="selectedFromBillingWarehouse" data-orderid="${orderId}" class="form-control">${selectOptions}</select>`);
69
                    $('.all-warehouse-map').attr("data-orderid", orderId); //setter
33261 ranu 70
                    $('.change-warehouse-save-mk').css("display", "block");
71
                } else {
72
                    $('#changeWarehouseModal .modal-body').html(`No other warehouse found for change`);
73
                    $('.change-warehouse-save-mk').css("display", "none");
74
                }
33257 ranu 75
            } else {
76
                console.log('error: invalid response structure');
77
            }
78
        });
79
    });
80
 
81
 
33247 ranu 82
    $(document).on('click', ".order_accepted", function () {
83
        var transactionId = $("#selectedTransactionId").text();
33741 amit.gupta 84
        var providerId = $("select.mk_provider>:selected").data("providerid");
85
        if(isNaN(providerId)) {
86
            alert("Choose Provider");
87
            return;
88
        }
89
        let vehicleNumber = null;
90
        if (providerId == SELF_PICKUP) {
91
            vehicleNumber = $('.mk_vehicleNumber').val();
92
            if (vehicleNumber == "") {
93
                alert("Vehicle Number is required");
94
                return;
95
            }
96
        } else if (providerId == RUNNER) {
97
            if ($('.mk_rider>select').prop('selectedIndex')==0) {
98
                alert("Choose Rider");
99
                return;
100
            }
101
            vehicleNumber = $('.mk_rider select').val();
102
        }
33247 ranu 103
        var warehouseId = $("#selectedWarehouseId").val();
104
        var orderBillingModels = []; // Array to store OrderBillingModel objects
105
        $("#wareHouseTransactionTable > tbody > tr").each(function (rowIndex) {
106
            if ($(this).hasClass('main-tr')) {
107
                var orderId = parseInt($(this).find(".orderId").text().trim());
108
                var fillQuantityInput = $(this).find(".filledQty");
109
                var fillQuantity = fillQuantityInput.length ? parseInt(fillQuantityInput.val().trim()) : 0; // Get fill quantity from input field if it exists
110
                var serialNumbers = [];
111
 
112
                var imeiInputAvailability = $(this).find(".imeis-to-grn");
113
                if (imeiInputAvailability.length) {
114
                    var imeiInput = ($(this).find(".imeis-to-grn")).tagsinput('items'); // Get selected serial numbers
115
                    if (imeiInput.length) {
116
                        imeiInput.forEach((imei) => {
117
                            serialNumbers.push(imei);
118
                        });
119
                    }
120
                }
121
 
122
                // Determine the quantity to bill based on serial numbers and fill quantity
123
                var quantityToBill;
124
                if (serialNumbers.length) {
125
                    quantityToBill = serialNumbers.length;
126
                } else {
127
                    quantityToBill = fillQuantity;
128
                }
129
 
130
                // Create OrderBillingModel object
131
                var orderBillingModel = {
132
                    orderId: orderId,
133
                    serialNumbersToBill: serialNumbers,
33741 amit.gupta 134
                    quantityToBill: quantityToBill,
135
                    logisticsProviderId:providerId,
136
                    vehicleNumber : vehicleNumber
33247 ranu 137
                };
138
 
139
                // Add OrderBillingModel object to the array
140
                orderBillingModels.push(orderBillingModel);
141
            }
142
        });
143
 
144
        // Convert orderBillingModels array to JSON string
145
        var requestBody = JSON.stringify(orderBillingModels);
146
 
147
        // Perform further actions with the requestBody, such as sending it in an AJAX request
148
        console.log('Request Body:', requestBody);
149
 
33271 amit.gupta 150
        doPostAjaxRequestWithJsonHandler(`${context}/om/addBillingDetailsForGrouppedOrders/?warehouseId=${warehouseId}&transactionId=${transactionId}`, requestBody, function (invoiceNumber) {
33270 amit.gupta 151
            if (invoiceNumber) {
33247 ranu 152
                alert("bill generated successfully");
33289 amit.gupta 153
                setTimeout(function () {
33277 amit.gupta 154
                    window.open(`${context}/om/downloadInvoice/${invoiceNumber}`, "_blank");
33403 amit.gupta 155
                }, 3000,);
33263 ranu 156
                loadAllTransaction(warehouseId, "main-content");
33247 ranu 157
            } else {
158
                alert("something went wrong");
159
            }
160
        });
161
 
162
    });
163
 
164
 
165
});
166
 
167
 
168
function loadAllTransaction(warehouseId, domId) {
169
    doGetAjaxRequestHandler(context + "/om/transactions/?warehouseId=" + warehouseId + "&orderStatus=SUBMITTED_FOR_PROCESSING", function (response) {
170
        $('#' + domId).html(response);
171
        var transactionId = $("#firstTxnId").val();
172
        $("#selectedWarehouse").val(warehouseId);
173
        console.log("Transaction ID:", transactionId);
33261 ranu 174
 
175
        var selectOptions = '';
176
        authorisedWarehouses.forEach(function (warehouse) {
177
            var selected = (warehouse.id == warehouseId) ? 'selected' : '';
178
 
179
            selectOptions += `<option value="${warehouse.id}" ${selected}>${warehouse.name}</option>`;
180
        });
181
        $('#authWarehousesList').html(`<select class="form-control" id="selectedWarehouse">${selectOptions}</select>`);
182
 
33247 ranu 183
        loadTransactionDetail(transactionId, warehouseId, "transaction-detail-container");
184
    });
185
}
186
 
187
function loadTransactionDetail(transactionId, warehouseId, detailContainer) {
188
    var url = context + "/om/orderByTransaction/?transactionId=" + transactionId + "&warehouseId=" + warehouseId;
189
    doGetAjaxRequestHandler(url, function (response) {
190
        $('#' + detailContainer).html(response);
191
        $("#selectedTransactionId").text(transactionId);
192
        $("#selectedWarehouseId").val(warehouseId);
193
    });
194
}
195
 
196
 
33261 ranu 197
function getAuthorisedWarehouseList(callback) {
33247 ranu 198
    bootBoxObj = {
199
        size: "small",
200
        title: "Choose Warehouse",
201
        callback: callback,
202
        inputType: 'select',
203
        inputOptions: typeof inputOptions == "undefined" ? undefined
204
            : inputOptions
205
    }
206
    if (typeof inputOptions == "undefined") {
33261 ranu 207
        doGetAjaxRequestHandler(context + "/authorisedWarehouses", function (response) {
208
            console.log("responseeee warehouse", response);
209
            authorisedWarehouses = JSON.parse(response);
210
 
33247 ranu 211
            inputOptions = [];
33261 ranu 212
            authorisedWarehouses.forEach(function (warehouse) {
33247 ranu 213
                inputOptions.push({
214
                    text: warehouse.name,
215
                    value: warehouse.id,
216
                });
217
            });
218
            bootBoxObj['inputOptions'] = inputOptions;
219
            bootbox.prompt(bootBoxObj);
220
        });
221
    } else if (inputOptions.length == 1) {
222
        callback(inputOptions[0].warehouse.id);
223
    } else {
224
        bootbox.prompt(bootBoxObj);
225
    }
33261 ranu 226
}
33247 ranu 227
 
33261 ranu 228
 
229