Subversion Repositories SmartDukaan

Rev

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