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->post("save_manufacturer", "Products::save_manufacturer");
|
||||||
$routes->get("product_list_for_service", "Products::product_list_for_service");
|
$routes->get("product_list_for_service", "Products::product_list_for_service");
|
||||||
$routes->post('status_product', 'Products::status_product');
|
$routes->post('status_product', 'Products::status_product');
|
||||||
|
$routes->get('delete_product_name/(:any)', 'Products::delete_product_name/$1');
|
||||||
//end products//
|
//end products//
|
||||||
|
|
||||||
//Sales order //
|
//Sales order //
|
||||||
|
|||||||
@ -138,7 +138,11 @@ class Products extends BaseController
|
|||||||
$data['product_id'] = $product_id;
|
$data['product_id'] = $product_id;
|
||||||
$ProductCategoryModel = new ProductCategoryModel();
|
$ProductCategoryModel = new ProductCategoryModel();
|
||||||
$productcategory = $ProductCategoryModel->orderBy('product_category_id')->findAll();
|
$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['productcategory']=$productcategory;
|
||||||
$data['additionalProdutName']=$additionalProdutName;
|
$data['additionalProdutName']=$additionalProdutName;
|
||||||
|
|
||||||
@ -491,40 +495,81 @@ class Products extends BaseController
|
|||||||
|
|
||||||
public function insertOrUpdateAdditionalProductName($product_names, $product_name_id, $product_id, $first_product_name)
|
public function insertOrUpdateAdditionalProductName($product_names, $product_name_id, $product_id, $first_product_name)
|
||||||
{
|
{
|
||||||
$firstProductNameData = [
|
// Fetch existing product names for the given product ID
|
||||||
'product_id' => $product_id,
|
$product_name_data = $this->additionalProductNameModal->where('product_id', $product_id)
|
||||||
'additional_product_name' => $first_product_name,
|
->orderBy('product_names_id', 'asc')
|
||||||
];
|
->findAll();
|
||||||
|
$product_name_count = count($product_name_data);
|
||||||
|
|
||||||
// Delete existing records for the given product ID
|
// Check if there are no existing product names and insert the first product name
|
||||||
$this->additionalProductNameModal->where('product_id', $product_id)->delete();
|
if ($product_name_count == 0 && !empty($first_product_name)) {
|
||||||
|
|
||||||
// Insert the first product name (if any)
|
$firstProductNameData = [
|
||||||
$this->additionalProductNameModal->insert($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 = [];
|
$productNameData = [];
|
||||||
|
|
||||||
// If there are additional product names, loop through and prepare them
|
|
||||||
if (!empty($product_names) && count($product_names) > 0) {
|
if (!empty($product_names) && count($product_names) > 0) {
|
||||||
|
foreach ($product_names as $index => $name) {
|
||||||
foreach ($product_names as $name) {
|
|
||||||
if (!empty($name)) {
|
if (!empty($name)) {
|
||||||
$productNameData[] = [
|
$productNameData[] = [
|
||||||
'product_id' => $product_id,
|
'product_id' => $product_id,
|
||||||
'additional_product_name' => $name,
|
'additional_product_name' => $name,
|
||||||
|
'product_names_id' => $product_name_id[$index] ?? null,
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Insert additional product names in batch if there are valid entries
|
// Filter data for inserts and updates
|
||||||
if (!empty($productNameData) && count($product_names) > 0) {
|
$insertData = array_filter($productNameData, function ($detail) {
|
||||||
$this->additionalProductNameModal->insertBatch($productNameData);
|
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;
|
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();
|
$productModel = new ProductModel();
|
||||||
|
|
||||||
// Query the database to find the product based on make_id and model_id
|
// 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('products', 'products.product_id = product_names.product_id')
|
||||||
->join('manufacturer', 'manufacturer.manufacturer_id = products.manufacturer_id')
|
->join('manufacturer', 'manufacturer.manufacturer_id = products.manufacturer_id')
|
||||||
->where('JSON_CONTAINS(make_id, \'' . $encodedMakeId . '\')', null, false)
|
->where('JSON_CONTAINS(make_id, \'' . $encodedMakeId . '\')', null, false)
|
||||||
@ -114,7 +114,7 @@ class Sales extends BaseController
|
|||||||
$encodedMakeId = json_encode(['0']);
|
$encodedMakeId = json_encode(['0']);
|
||||||
$encodedModelId = 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('products', 'products.product_id = product_names.product_id')
|
||||||
->join('manufacturer', 'manufacturer.manufacturer_id = products.manufacturer_id')
|
->join('manufacturer', 'manufacturer.manufacturer_id = products.manufacturer_id')
|
||||||
->where('JSON_CONTAINS(make_id, \'' . $encodedMakeId . '\')', null, false)
|
->where('JSON_CONTAINS(make_id, \'' . $encodedMakeId . '\')', null, false)
|
||||||
@ -179,6 +179,7 @@ class Sales extends BaseController
|
|||||||
|
|
||||||
// Insert or update sales order
|
// Insert or update sales order
|
||||||
$sales_order_id = $this->request->getPost('sales_order_id');
|
$sales_order_id = $this->request->getPost('sales_order_id');
|
||||||
|
|
||||||
if (!empty($sales_order_id)) {
|
if (!empty($sales_order_id)) {
|
||||||
if ($this->request->getPost('status') === "Paid") {
|
if ($this->request->getPost('status') === "Paid") {
|
||||||
$data['mode_of_payment'] = $this->request->getPost('mode_of_payment');
|
$data['mode_of_payment'] = $this->request->getPost('mode_of_payment');
|
||||||
@ -211,7 +212,14 @@ class Sales extends BaseController
|
|||||||
|
|
||||||
|
|
||||||
$status = $this->request->getPost('status');
|
$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;
|
$qty = isset($quantities[$key]) ? $quantities[$key] : 0;
|
||||||
if ($status == 'Created') {
|
if ($status == 'Created') {
|
||||||
$this->subractProductQuantity($ProductModel, $product_id, $qty);
|
$this->subractProductQuantity($ProductModel, $product_id, $qty);
|
||||||
@ -229,6 +237,7 @@ class Sales extends BaseController
|
|||||||
$product_data = [
|
$product_data = [
|
||||||
'sales_order_id' => $sales_order_id,
|
'sales_order_id' => $sales_order_id,
|
||||||
'product_id' => $product_id,
|
'product_id' => $product_id,
|
||||||
|
'product_names_id' => $product_names_id,
|
||||||
'qty' => $qty,
|
'qty' => $qty,
|
||||||
'discount' => $discount,
|
'discount' => $discount,
|
||||||
'discount_type' => $discount_type,
|
'discount_type' => $discount_type,
|
||||||
@ -240,7 +249,6 @@ class Sales extends BaseController
|
|||||||
// print_r($product_data);die;
|
// print_r($product_data);die;
|
||||||
if (!empty($sales_product_id[$key])) {
|
if (!empty($sales_product_id[$key])) {
|
||||||
|
|
||||||
|
|
||||||
$SalesOrderProductModel->update($sales_product_id[$key], $product_data);
|
$SalesOrderProductModel->update($sales_product_id[$key], $product_data);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
@ -526,7 +534,7 @@ class Sales extends BaseController
|
|||||||
|
|
||||||
|
|
||||||
// Query the database to find the product based on make_id and model_id
|
// 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('products', 'products.product_id = product_names.product_id')
|
||||||
->join('manufacturer', 'manufacturer.manufacturer_id = products.manufacturer_id')
|
->join('manufacturer', 'manufacturer.manufacturer_id = products.manufacturer_id')
|
||||||
->where('JSON_CONTAINS(make_id, \'' . $encodedMakeId . '\')', null, false)
|
->where('JSON_CONTAINS(make_id, \'' . $encodedMakeId . '\')', null, false)
|
||||||
@ -538,7 +546,7 @@ class Sales extends BaseController
|
|||||||
$encodedMakeId = json_encode(['0']);
|
$encodedMakeId = json_encode(['0']);
|
||||||
$encodedModelId = 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('products', 'products.product_id = product_names.product_id')
|
||||||
->join('manufacturer', 'manufacturer.manufacturer_id = products.manufacturer_id')
|
->join('manufacturer', 'manufacturer.manufacturer_id = products.manufacturer_id')
|
||||||
->where('JSON_CONTAINS(make_id, \'' . $encodedMakeId . '\')', null, false)
|
->where('JSON_CONTAINS(make_id, \'' . $encodedMakeId . '\')', null, false)
|
||||||
|
|||||||
@ -5,7 +5,7 @@ class SalesOrderProductModel extends Model
|
|||||||
{
|
{
|
||||||
protected $table = 'sales_order_product';
|
protected $table = 'sales_order_product';
|
||||||
protected $primaryKey = 'sales_order_product_id';
|
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'];
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -909,7 +909,7 @@ function addHTMLInput(data = null)
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-group col-md-6">
|
<div class="form-group col-md-6">
|
||||||
<a class="btn btn-danger waves-effect waves-light" onclick="removeHTMLInput(this)">x</a>
|
<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>
|
<a class="btn btn-primary waves-effect waves-light mr-1" onclick="addHTMLInput(this)">+</a>
|
||||||
</div>
|
</div>
|
||||||
`;
|
`;
|
||||||
|
|||||||
@ -194,8 +194,12 @@
|
|||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
<?php if ((int)$value["isactive"] === 1) : ?>
|
<?php if ((int)$value["isactive"] === 1) : ?>
|
||||||
<option value="<?= $value["product_id"] ?>"
|
<?php
|
||||||
<?= isset($salechild['product_id']) && $salechild['product_id'] == $value["product_id"] ? 'selected' : '' ?>>
|
$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"]; ?>
|
<?= $value["additional_product_name"].$value_ml.' - '.$value["manufacturer_name"]; ?>
|
||||||
</option>
|
</option>
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
@ -721,8 +725,10 @@ $(document).ready(function() {
|
|||||||
var product = productarray[i];
|
var product = productarray[i];
|
||||||
if(!selected_pr.includes(product.product_id))
|
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>';
|
'</option>';
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
newRow += '</select></td>' +
|
newRow += '</select></td>' +
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user