From 5b719c46801714763fa0e39fa3ed4ac6432342e4 Mon Sep 17 00:00:00 2001 From: sriramv Date: Tue, 30 Apr 2024 17:56:37 +0530 Subject: [PATCH] CHANGE_job_card_delete_update:ss --- app/Config/Routes.php | 3 +- app/Controllers/Jobcard.php | 61 ++++++++- app/Models/JobcardCustomComplaintModel.php | 2 +- app/Models/JobcardModel.php | 4 +- app/Views/complaint_list.php | 4 +- app/Views/job_card_form.php | 145 ++++++++++++--------- app/Views/layout/header.php | 2 +- app/Views/make_list.php | 10 ++ app/Views/vendor_list.php | 4 +- 9 files changed, 161 insertions(+), 74 deletions(-) diff --git a/app/Config/Routes.php b/app/Config/Routes.php index 7d2f325..79dd85e 100644 --- a/app/Config/Routes.php +++ b/app/Config/Routes.php @@ -95,7 +95,8 @@ $routes->post("add_client", "Client::add_client"); $routes->get("new_client/(:any)", "Client::new_client/$1"); $routes->get("delete_client/(:any)", "Client::delete_client/$1"); $routes->post("save_client", "Client::client_quick_create"); -//end clent +//end client + //Vendor// $routes->get('vendor_index/', 'Vendor::vendor_index'); $routes->post("add_vendor", "Vendor::add_vendor"); diff --git a/app/Controllers/Jobcard.php b/app/Controllers/Jobcard.php index 243be8d..203a6f1 100644 --- a/app/Controllers/Jobcard.php +++ b/app/Controllers/Jobcard.php @@ -93,7 +93,7 @@ class Jobcard extends BaseController $value['product'] = $product; } $data['editservicedata'] = $servicedata; - /*** COMPLAINT DATA ***/ + /*** COMPLAINT DATA ***/ $complaintdata = $JobcardModel->complaint_data($job_card_id, $this->session->get('logged_user_branch_id')); // Using '&' to reference the original array element foreach ($complaintdata as &$value) { @@ -105,7 +105,7 @@ class Jobcard extends BaseController } $data['editcomplaintdata'] = $complaintdata; - /*** CUSTOM COMPLAINT DATA ***/ + /*** CUSTOM COMPLAINT DATA ***/ $ccomplaintdata = $JobcardModel->ccomplaint_data($job_card_id, $this->session->get('logged_user_branch_id')); // Using '&' to reference the original array element foreach ($ccomplaintdata as &$value) { @@ -193,6 +193,8 @@ class Jobcard extends BaseController public function add_jobs() { // echo $this->request->getPost('products');die; + // echo $this->request->getPost('delete_items');die; + $this->delete_items($this->request->getPost('delete_items')); $JobcardModel = new JobcardModel(); $JobcardProductModel = new JobcardProductModel(); $JobcardServiceModel = new JobcardServiceModel(); @@ -228,7 +230,7 @@ class Jobcard extends BaseController // Update sales order with generated order number $JobcardModel->update($job_card_id, ['order_number' => $orderNumber]); } - + /********** INSERT SERVICE DATA ************/ $data = json_decode($_POST['products']); $service_data = $data[0]->service; @@ -331,6 +333,7 @@ class Jobcard extends BaseController // Insert into the service table $service['job_card_id'] = $job_card_id; $service['complaint_name'] = $item->complaint_id; + $service['labour_cost'] = $item->labour_cost; $service['qty'] = $item->quality; $service['tax'] = $item->tax; $service['amount'] = $item->amount; @@ -372,6 +375,56 @@ class Jobcard extends BaseController return redirect()->to('job_card_index'); } + public function delete_items($delArr) + { + $JobcardServiceModel = new JobcardServiceModel(); + $JobcardComplaintModel = new JobcardComplaintModel(); + $JobcardCustomComplaintModel = new JobcardCustomComplaintModel(); + $data = json_decode($delArr); + + $service_data = $data[0]->service; + if(!empty($service_data)) { + foreach ($service_data as $item) { + $conditions = [ 'job_card_service_id' => $item ]; + $service_deleted_data = $JobcardServiceModel->where($conditions)->findAll(); + $this->product_delete($service_deleted_data[0]['product_id']); + $JobcardServiceModel->where($conditions)->delete(); + } + } + + $complaint_data = $data[0]->complaint; + if(!empty($complaint_data)) { + foreach ($complaint_data as $item) { + $conditions = [ 'job_card_complaint_id' => $item ]; + $complaint_deleted_data = $JobcardComplaintModel->where($conditions)->findAll(); + $this->product_delete($complaint_deleted_data[0]['product_id']); + $JobcardComplaintModel->where($conditions)->delete(); + } + } + + $ccomplaint_data = $data[0]->custom_complaint; + if(!empty($ccomplaint_data)) { + foreach ($ccomplaint_data as $item) { + $conditions = [ 'job_card_cc_id' => $item ]; + $cc_deleted_data = $JobcardCustomComplaintModel->where($conditions)->findAll(); + $this->product_delete($cc_deleted_data[0]['product_id']); + $JobcardCustomComplaintModel->where($conditions)->delete(); + } + } + } + + /** DELETE JOB CARD-PRODUCT */ + public function product_delete($product) { + $JobcardProductModel = new JobcardProductModel(); + $product_ids = json_decode($product, true); + if (empty($product_ids)) return true; + foreach ($product_ids as $item) { + $conditions = [ 'job_card_product_id' => $item ]; + $JobcardProductModel->where($conditions)->delete(); + } + return true; + } + public function product_data_maintanence($id_array,$status) { $ProductModel = new ProductModel(); @@ -380,7 +433,7 @@ class Jobcard extends BaseController foreach ($id_array as $key => $product_id) { $product = $JobcardProductModel->find($product_id); $qty = isset($product['qty']) ? $product['qty'] : 0; - if ($status == 'Created') { + if ($status == 'Paid') { $this->updateProductQuantity($ProductModel, $product['product_id'], $qty); }elseif ($status == 'Cancelled'){ $this->addBackProductQuantity($ProductModel, $product['product_id'], $qty); diff --git a/app/Models/JobcardCustomComplaintModel.php b/app/Models/JobcardCustomComplaintModel.php index ad9af96..20afff1 100644 --- a/app/Models/JobcardCustomComplaintModel.php +++ b/app/Models/JobcardCustomComplaintModel.php @@ -5,5 +5,5 @@ class JobcardCustomComplaintModel extends Model { protected $table = 'job_card_custom_complaint'; protected $primaryKey = 'job_card_cc_id'; - protected $allowedFields = ['job_card_cc_id', 'job_card_id','complaint_name', 'product_id', 'qty', 'tax', 'amount','isactive']; + protected $allowedFields = ['job_card_cc_id', 'job_card_id','complaint_name', 'labour_cost','product_id', 'qty', 'tax', 'amount','isactive']; } \ No newline at end of file diff --git a/app/Models/JobcardModel.php b/app/Models/JobcardModel.php index 0cce0cb..b0ccff8 100644 --- a/app/Models/JobcardModel.php +++ b/app/Models/JobcardModel.php @@ -39,8 +39,8 @@ class JobcardModel extends Model $this->select('job_card.job_card_id, job_card_complaint.*'); $this->join('job_card_complaint', 'job_card_complaint.job_card_id = job_card.job_card_id'); $this->where('job_card_complaint.isactive', 1); - $this ->where('job_card.job_card_id',$job_card_id); - $this ->where('job_card.branch_id',$logged_user_branch_id); + $this->where('job_card.job_card_id',$job_card_id); + $this->where('job_card.branch_id',$logged_user_branch_id); return $this->findAll(); } diff --git a/app/Views/complaint_list.php b/app/Views/complaint_list.php index 690b86c..b4caab5 100644 --- a/app/Views/complaint_list.php +++ b/app/Views/complaint_list.php @@ -21,7 +21,7 @@ Name Labour Charge - Status + Status Actions @@ -31,7 +31,7 @@ - + Active diff --git a/app/Views/job_card_form.php b/app/Views/job_card_form.php index 46b9d57..1e8712d 100644 --- a/app/Views/job_card_form.php +++ b/app/Views/job_card_form.php @@ -21,6 +21,7 @@
" method="post"> +
@@ -278,13 +279,12 @@ $(document).ready(async function() { /** SERVICE */ var edit_service_data = ; - // console.log(edit_service_data); if(edit_service_data.length > 0) { for (const value of edit_service_data) { servicearray = ; // console.log(servicearray); - var newRow = ` - + var newRow = ` + ' + + var newRow = ' ' + '' + '' + '' + @@ -383,12 +382,12 @@ $(document).ready(async function() { initializeSelect2(); /** APPEND CHILD PRODUCT */ await edit_product_data(value.product); - // editlabourcost(value.product) + editlabourcost(value.labour_cost) } } function editlabourcost(data) { - var newRow = '' + + var newRow = '' + '' + '' + '' + @@ -406,7 +405,7 @@ $(document).ready(async function() { function edit_product_data(products) { for (const product of products) { - var newRow = ` + var newRow = ` ' + + var newRow = '' + '' + '' + '' + @@ -779,8 +785,6 @@ $(document).ready(async function() { } const service_child_products = async (data,tr) => { - console.log(); - console.log(JSON.parse(data.product_id)); JSON.parse(data.product_id).forEach(async(element,index) => { if(element == 0) return; var product = products.find(function(item) { @@ -792,19 +796,19 @@ $(document).ready(async function() { // Calculate total tax by adding CGST and SGST var tax = cgst + sgst; - var newRow = '' + '' + '' + ' ' + - '' + + '' + '' + '' + ''; - // $('#productItemTable tbody').append(newRow); + // $('#productItemTable tbody').append(newRow); $(newRow).insertAfter(tr); initializeSelect2(); @@ -812,30 +816,26 @@ $(document).ready(async function() { } // Event listener for quantity change - $(document).on('input change', '.item-quantity', async function() { - // let promise = new Promise((resolve,reject) => { + $(document).on('input change', '.item-quantity', async function() { calculateAmount($(this).closest('tr')); - // resolve() - // }) - // promise.then(() => { - updateCalculations(); // Added for updating calculations when quantity changes - // }); + updateCalculations(); + }); + + $(document).on('click', '.item-quantity', async function() { + updateCalculations(); }); // Function to calculate subtotal function calculateSubtotal() { - var subtotal = 0; $('.item-amount').each(function() { subtotal += parseFloat($(this).val()) || 0; }); - return subtotal; - + return subtotal; } // Function to calculate total tax function calculateTax() { - var tax = 0; $('.item-tax').each(function() { var taxPercentage = parseFloat($(this).val()) || 0; @@ -844,10 +844,7 @@ $(document).ready(async function() { tax += taxValue; }); return tax; - - } - - + } // Function to calculate total discount function calculateDiscount() { @@ -868,14 +865,12 @@ $(document).ready(async function() { // Function to calculate total function calculateTotal() { - var subtotal = calculateSubtotal(); var tax = calculateTax(); var discount = calculateDiscount(); var total = subtotal + tax - discount; // return total; return Math.round(total); - } // Update subtotal, tax, and total @@ -902,7 +897,7 @@ $(document).ready(async function() { console.log(productarray); } - var newRow = '' + + var newRow = ' ' + '' + '' + '' + @@ -1012,35 +1007,63 @@ $(document).ready(async function() { '' + ''; - - $('#productItemTable tbody').append(newRow); + newRow += '' + + '' + + '' + + '' + + '' + + '' + + '' + + ''; + $('#productItemTable tbody').append(newRow); initializeSelect2(); }); - // Event listener for removing item + $(document).on('input', '.item_dummy', function() { + var row = $(this).closest('tr'); + var labourCostInput = row.prevAll('.custom_complaint_class:first').find('.labour_cost'); + var dummyValue = $(this).val(); + labourCostInput.val(dummyValue); + }); + + /** REMOVE ITEMS FROM THE TABLE **/ + delete_items_id = [{ 'service': [], 'complaint': [], 'custom_complaint': [] }]; $(document).on('click', '.remove-item', function() { + var $closestTR = $(this).closest('tr'); - console.log( ); - - var main_tr_to_remove = $(this).closest('tr').data('select2Id'); - $(this).closest('tr').remove(); - - if ($(this).closest('tr').attr('class') == 'complaint_class') { - $('.complaint_product_'+main_tr_to_remove).remove(); - - }else if($(this).closest('tr').attr('class') == 'service_class'){ - $('.service_product_'+main_tr_to_remove).remove(); - - }else if($(this).closest('tr').attr('class') == 'custom_complaint_class'){ - $('.service_product_'+main_tr_to_remove).remove(); - + if($closestTR.attr('class') == "service_class") + { + id = $closestTR.find('input[name="id"]').val(); + delete_items_id[0].service.push(id); + console.log(delete_items_id); + } + else if($closestTR.attr('class') == "complaint_class") + { + id = $closestTR.find('input[name="id"]').val(); + delete_items_id[0].complaint.push(id); + console.log(delete_items_id); + } + else if($closestTR.attr('class') == "custom_complaint_class") + { + id = $closestTR.find('input[name="id"]').val(); + delete_items_id[0].complaint.push(id); + console.log(delete_items_id); } - - updateCalculations(); // Added for updating calculations when an item is removed + while ($closestTR.next().length > 0 && $closestTR.attr('class') != "product") { + if ($closestTR.next().hasClass('service_class') || $closestTR.next().hasClass('complaint_class') || $closestTR.next().hasClass('custom_complaint_class')) { + break; + } + // Remove the next row + $closestTR.next().remove(); + } + // Remove the clicked row + $closestTR.remove(); + updateCalculations(); }); + }); diff --git a/app/Views/layout/header.php b/app/Views/layout/header.php index a2a0d7f..4ea2aaf 100644 --- a/app/Views/layout/header.php +++ b/app/Views/layout/header.php @@ -286,7 +286,7 @@
  • - Complaints + Complaints Master
  • diff --git a/app/Views/make_list.php b/app/Views/make_list.php index 76b3c9a..df79eda 100644 --- a/app/Views/make_list.php +++ b/app/Views/make_list.php @@ -165,6 +165,16 @@ } function submitMake(params) { + // Get the value of the Make Name input field + var makeName = $('#bike_make_name').val().trim(); + + // Check if Make Name is empty + if (makeName === '') { + // Display error message + toastr.error('Please enter a Make Name.', 'Error'); + return; // Stop further execution of the function + } + var formData = { makename: $('#bike_make_name').val() }; diff --git a/app/Views/vendor_list.php b/app/Views/vendor_list.php index 935ba77..249608a 100644 --- a/app/Views/vendor_list.php +++ b/app/Views/vendor_list.php @@ -32,7 +32,7 @@ # Vendor Name - Email + Mobile No Category Action @@ -46,7 +46,7 @@ - + " class="edit-button">