CHANGE_PRODUCT_NAMES_LIST_IN_SALSE_MODULE : RV
This commit is contained in:
parent
67ac9d4ff3
commit
0ef0ee496d
@ -72,6 +72,7 @@ $routes->post("save_model", "Products::save_model");
|
||||
$routes->post("save_manufacturer", "Products::save_manufacturer");
|
||||
$routes->get("product_list_for_service", "Products::product_list_for_service");
|
||||
$routes->post('status_product', 'Products::status_product');
|
||||
$routes->get('delete_product_name/(:any)', 'Products::delete_product_name/$1');
|
||||
//end products//
|
||||
|
||||
//Sales order //
|
||||
|
||||
@ -138,7 +138,11 @@ class Products extends BaseController
|
||||
$data['product_id'] = $product_id;
|
||||
$ProductCategoryModel = new ProductCategoryModel();
|
||||
$productcategory = $ProductCategoryModel->orderBy('product_category_id')->findAll();
|
||||
$additionalProdutName = $this->additionalProductNameModal->where('product_id', $product_id)->orderBy('product_names_id')->findAll();
|
||||
$additionalProdutName = $this->additionalProductNameModal
|
||||
->where('product_id', $product_id)
|
||||
->where('isactive', 1)
|
||||
->orderBy('product_names_id', 'asc')
|
||||
->findAll();
|
||||
$data['productcategory']=$productcategory;
|
||||
$data['additionalProdutName']=$additionalProdutName;
|
||||
|
||||
@ -490,41 +494,82 @@ class Products extends BaseController
|
||||
//----VENKAT------------------------------------------------------------------------------------------------
|
||||
|
||||
public function insertOrUpdateAdditionalProductName($product_names, $product_name_id, $product_id, $first_product_name)
|
||||
{
|
||||
$firstProductNameData = [
|
||||
'product_id' => $product_id,
|
||||
'additional_product_name' => $first_product_name,
|
||||
];
|
||||
|
||||
// Delete existing records for the given product ID
|
||||
$this->additionalProductNameModal->where('product_id', $product_id)->delete();
|
||||
|
||||
// Insert the first product name (if any)
|
||||
$this->additionalProductNameModal->insert($firstProductNameData);
|
||||
|
||||
{
|
||||
// Fetch existing product names for the given product ID
|
||||
$product_name_data = $this->additionalProductNameModal->where('product_id', $product_id)
|
||||
->orderBy('product_names_id', 'asc')
|
||||
->findAll();
|
||||
$product_name_count = count($product_name_data);
|
||||
|
||||
// Check if there are no existing product names and insert the first product name
|
||||
if ($product_name_count == 0 && !empty($first_product_name)) {
|
||||
|
||||
$firstProductNameData = [
|
||||
'product_id' => $product_id,
|
||||
'additional_product_name' => $first_product_name,
|
||||
];
|
||||
|
||||
// Insert the first product name
|
||||
$this->additionalProductNameModal->insert($firstProductNameData);
|
||||
|
||||
} else {
|
||||
|
||||
// Update the first product name if it has changed
|
||||
if ($product_name_data[0]['additional_product_name'] != $first_product_name) {
|
||||
$firstProductNameUpdateData = [
|
||||
'additional_product_name' => $first_product_name,
|
||||
];
|
||||
|
||||
$this->additionalProductNameModal
|
||||
->where('product_names_id', $product_name_data[0]['product_names_id'])
|
||||
->set($firstProductNameUpdateData)
|
||||
->update();
|
||||
}
|
||||
}
|
||||
|
||||
$productNameData = [];
|
||||
|
||||
// If there are additional product names, loop through and prepare them
|
||||
|
||||
if (!empty($product_names) && count($product_names) > 0) {
|
||||
|
||||
foreach ($product_names as $name) {
|
||||
foreach ($product_names as $index => $name) {
|
||||
if (!empty($name)) {
|
||||
$productNameData[] = [
|
||||
'product_id' => $product_id,
|
||||
'additional_product_name' => $name,
|
||||
'product_names_id' => $product_name_id[$index] ?? null,
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
// Insert additional product names in batch if there are valid entries
|
||||
if (!empty($productNameData) && count($product_names) > 0) {
|
||||
$this->additionalProductNameModal->insertBatch($productNameData);
|
||||
|
||||
// Filter data for inserts and updates
|
||||
$insertData = array_filter($productNameData, function ($detail) {
|
||||
return empty($detail['product_names_id']); // Insert new records only
|
||||
});
|
||||
|
||||
$updateData = array_filter($productNameData, function ($detail) {
|
||||
return !empty($detail['product_names_id']); // Update existing records
|
||||
});
|
||||
|
||||
// Insert new product names
|
||||
if (!empty($insertData)) {
|
||||
$this->additionalProductNameModal->insertBatch($insertData);
|
||||
}
|
||||
|
||||
// Update existing product names
|
||||
if (!empty($updateData)) {
|
||||
$this->additionalProductNameModal->updateBatch($updateData, 'product_names_id');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public function delete_product_name($product_id, $product_names_id)
|
||||
{
|
||||
if(!empty($product_id) && !empty($product_names_id)){
|
||||
$this->additionalProductNameModal->where('product_names_id', $product_names_id)->set('isactive', 0)->update();
|
||||
}
|
||||
|
||||
return redirect()->to('new_product/' . $product_id);
|
||||
}
|
||||
|
||||
}
|
||||
@ -102,7 +102,7 @@ class Sales extends BaseController
|
||||
$productModel = new ProductModel();
|
||||
|
||||
// Query the database to find the product based on make_id and model_id
|
||||
$makeproduct = $this->additionalProductNameModal->select('products.*, manufacturer.manufacturer_name, product_names.additional_product_name')
|
||||
$makeproduct = $this->additionalProductNameModal->select('products.*, manufacturer.manufacturer_name, product_names.product_names_id, product_names.additional_product_name')
|
||||
->join('products', 'products.product_id = product_names.product_id')
|
||||
->join('manufacturer', 'manufacturer.manufacturer_id = products.manufacturer_id')
|
||||
->where('JSON_CONTAINS(make_id, \'' . $encodedMakeId . '\')', null, false)
|
||||
@ -114,7 +114,7 @@ class Sales extends BaseController
|
||||
$encodedMakeId = json_encode(['0']);
|
||||
$encodedModelId = json_encode(['0']);
|
||||
|
||||
$common_product = $this->additionalProductNameModal->select('products.*, manufacturer.manufacturer_name, product_names.additional_product_name')
|
||||
$common_product = $this->additionalProductNameModal->select('products.*, manufacturer.manufacturer_name, product_names.product_names_id, product_names.additional_product_name')
|
||||
->join('products', 'products.product_id = product_names.product_id')
|
||||
->join('manufacturer', 'manufacturer.manufacturer_id = products.manufacturer_id')
|
||||
->where('JSON_CONTAINS(make_id, \'' . $encodedMakeId . '\')', null, false)
|
||||
@ -179,6 +179,7 @@ class Sales extends BaseController
|
||||
|
||||
// Insert or update sales order
|
||||
$sales_order_id = $this->request->getPost('sales_order_id');
|
||||
|
||||
if (!empty($sales_order_id)) {
|
||||
if ($this->request->getPost('status') === "Paid") {
|
||||
$data['mode_of_payment'] = $this->request->getPost('mode_of_payment');
|
||||
@ -211,7 +212,14 @@ class Sales extends BaseController
|
||||
|
||||
|
||||
$status = $this->request->getPost('status');
|
||||
foreach ($product_ids as $key => $product_id) {
|
||||
foreach ($product_ids as $key => $product_string) {
|
||||
|
||||
|
||||
$product_id = null;
|
||||
$product_names_id = null;
|
||||
|
||||
list($product_id, $product_names_id) = explode('-', $product_string);
|
||||
|
||||
$qty = isset($quantities[$key]) ? $quantities[$key] : 0;
|
||||
if ($status == 'Created') {
|
||||
$this->subractProductQuantity($ProductModel, $product_id, $qty);
|
||||
@ -229,6 +237,7 @@ class Sales extends BaseController
|
||||
$product_data = [
|
||||
'sales_order_id' => $sales_order_id,
|
||||
'product_id' => $product_id,
|
||||
'product_names_id' => $product_names_id,
|
||||
'qty' => $qty,
|
||||
'discount' => $discount,
|
||||
'discount_type' => $discount_type,
|
||||
@ -240,7 +249,6 @@ class Sales extends BaseController
|
||||
// print_r($product_data);die;
|
||||
if (!empty($sales_product_id[$key])) {
|
||||
|
||||
|
||||
$SalesOrderProductModel->update($sales_product_id[$key], $product_data);
|
||||
|
||||
} else {
|
||||
@ -526,7 +534,7 @@ class Sales extends BaseController
|
||||
|
||||
|
||||
// Query the database to find the product based on make_id and model_id
|
||||
$makeproduct = $this->additionalProductNameModal->select('products.*, manufacturer.manufacturer_name, product_names.additional_product_name')
|
||||
$makeproduct = $this->additionalProductNameModal->select('products.*, manufacturer.manufacturer_name, product_names.product_names_id, product_names.additional_product_name')
|
||||
->join('products', 'products.product_id = product_names.product_id')
|
||||
->join('manufacturer', 'manufacturer.manufacturer_id = products.manufacturer_id')
|
||||
->where('JSON_CONTAINS(make_id, \'' . $encodedMakeId . '\')', null, false)
|
||||
@ -538,7 +546,7 @@ class Sales extends BaseController
|
||||
$encodedMakeId = json_encode(['0']);
|
||||
$encodedModelId = json_encode(['0']);
|
||||
|
||||
$common_product = $this->additionalProductNameModal->select('products.*, manufacturer.manufacturer_name, product_names.additional_product_name')
|
||||
$common_product = $this->additionalProductNameModal->select('products.*, manufacturer.manufacturer_name, product_names.product_names_id, product_names.additional_product_name')
|
||||
->join('products', 'products.product_id = product_names.product_id')
|
||||
->join('manufacturer', 'manufacturer.manufacturer_id = products.manufacturer_id')
|
||||
->where('JSON_CONTAINS(make_id, \'' . $encodedMakeId . '\')', null, false)
|
||||
|
||||
@ -5,7 +5,7 @@ class SalesOrderProductModel extends Model
|
||||
{
|
||||
protected $table = 'sales_order_product';
|
||||
protected $primaryKey = 'sales_order_product_id';
|
||||
protected $allowedFields = ['sales_order_product_id','sales_order_id','product_id','qty','total','tax','net_price','amount','discount_type','selling_price','discount','isactive'];
|
||||
protected $allowedFields = ['sales_order_product_id','sales_order_id','product_id', 'product_names_id' ,'qty','total','tax','net_price','amount','discount_type','selling_price','discount','isactive'];
|
||||
|
||||
|
||||
}
|
||||
@ -908,8 +908,8 @@ function addHTMLInput(data = null)
|
||||
<input value="${data != null && data.additional_product_name != null ? data.additional_product_name : ''}" type="text" class="form-control" id="additional_product_name" name="additional_product_name[]" placeholder="Enter Additional Product name">
|
||||
</div>
|
||||
|
||||
<div class="form-group col-md-6">
|
||||
<a class="btn btn-danger waves-effect waves-light" onclick="removeHTMLInput(this)">x</a>
|
||||
<div class="form-group col-md-6">
|
||||
<a href="<?= isset($products['product_id']) ? base_url('delete_product_name/' . $products['product_id'] . '/') : '#' ?>${data && data.product_names_id ? data.product_names_id : ''}" class="btn btn-danger waves-effect waves-light" onclick="removeHTMLInput(this)">x</a>
|
||||
<a class="btn btn-primary waves-effect waves-light mr-1" onclick="addHTMLInput(this)">+</a>
|
||||
</div>
|
||||
`;
|
||||
|
||||
@ -194,8 +194,12 @@
|
||||
}
|
||||
?>
|
||||
<?php if ((int)$value["isactive"] === 1) : ?>
|
||||
<option value="<?= $value["product_id"] ?>"
|
||||
<?= isset($salechild['product_id']) && $salechild['product_id'] == $value["product_id"] ? 'selected' : '' ?>>
|
||||
<?php
|
||||
$salse_product_ids = $salechild['product_id'].'-'.$salechild['product_names_id'];
|
||||
$product_ids = $value['product_id'].'-'.$value['product_names_id'];
|
||||
?>
|
||||
<option value="<?= $product_ids ?>"
|
||||
<?= isset($salechild['product_id']) && $salse_product_ids == $product_ids ? 'selected' : '' ?>>
|
||||
<?= $value["additional_product_name"].$value_ml.' - '.$value["manufacturer_name"]; ?>
|
||||
</option>
|
||||
<?php endif; ?>
|
||||
@ -721,8 +725,10 @@ $(document).ready(function() {
|
||||
var product = productarray[i];
|
||||
if(!selected_pr.includes(product.product_id))
|
||||
{
|
||||
newRow += '<option value="' + product.product_id + '" >' + product.additional_product_name + value_ml + " - " + product.manufacturer_name+
|
||||
newRow += '<option value="' + product.product_id + '-' + product.product_names_id + '">'
|
||||
+ product.additional_product_name + value_ml + " - " + product.manufacturer_name +
|
||||
'</option>';
|
||||
|
||||
}
|
||||
}
|
||||
newRow += '</select></td>' +
|
||||
|
||||
Loading…
Reference in New Issue
Block a user