Skip to content

Commit

Permalink
Merge branch '18.0' of git@github.com:Dolibarr/dolibarr.git into 19.0
Browse files Browse the repository at this point in the history
  • Loading branch information
eldy committed Dec 17, 2024
2 parents 2c583ce + d16dd82 commit 91eb9fc
Show file tree
Hide file tree
Showing 10 changed files with 100 additions and 58 deletions.
1 change: 1 addition & 0 deletions .github/workflows/pr-18-autolabel.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,4 @@ jobs:
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
configuration-path: .github/changed-lines-count-labeler.yml
continue-on-error: true
76 changes: 55 additions & 21 deletions htdocs/accountancy/class/bookkeeping.class.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@
* Copyright (C) 2015-2022 Alexandre Spangaro <aspangaro@open-dsi.fr>
* Copyright (C) 2015-2020 Florian Henry <florian.henry@open-concept.pro>
* Copyright (C) 2018-2024 Frédéric France <frederic.france@free.fr>
* Copyright (C) 2024 MDW <mdeweerd@users.noreply.github.com>
* Copyright (C) 2024 MDW <mdeweerd@users.noreply.github.com>
* Copyright (C) 2024 Jose MARTINEZ <jose.martinez@pichinov.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
Expand Down Expand Up @@ -329,7 +330,7 @@ public function create(User $user, $notrigger = 0)
$this->piece_num = 0;

// First check if line not yet already in bookkeeping.
// Note that we must include 'doc_type - fk_doc - numero_compte - label' to be sure to have unicity of line (because we may have several lines
// Note that we must include 'doc_type - fk_doc - numero_compte - label - subledger_account (if not empty)' to be sure to have unicity of line (because we may have several lines
// with same doc_type, fk_doc, numero_compte for 1 invoice line when using localtaxes with same account)
// WARNING: This is not reliable, label may have been modified. This is just a small protection.
// The page that make transfer make the test on couple (doc_type - fk_doc) only.
Expand All @@ -343,6 +344,9 @@ public function create(User $user, $notrigger = 0)
}
$sql .= " AND numero_compte = '".$this->db->escape($this->numero_compte)."'";
$sql .= " AND label_operation = '".$this->db->escape($this->label_operation)."'";
if (!empty($this->subledger_account)) {
$sql .= " AND subledger_account = '".$this->db->escape($this->subledger_account)."'";
}
$sql .= " AND entity = ".$conf->entity; // Do not use getEntity for accounting features

$resql = $this->db->query($sql);
Expand Down Expand Up @@ -2814,10 +2818,8 @@ public function closeFiscalPeriod($fiscal_period_id, $new_fiscal_period_id, $sep

$sql = 'SELECT';
$sql .= " t.numero_compte,";
$sql .= " t.label_compte,";
if ($separate_auxiliary_account) {
$sql .= " t.subledger_account,";
$sql .= " t.subledger_label,";
$sql .= " NULLIF(t.subledger_account, '') as subledger_account,"; // fix db issues with Null or "" values
}
$sql .= " aa.pcg_type,";
$sql .= " (SUM(t.credit) - SUM(t.debit)) as opening_balance";
Expand All @@ -2829,10 +2831,11 @@ public function closeFiscalPeriod($fiscal_period_id, $new_fiscal_period_id, $sep
$sql .= ' AND aa.pcg_type IN (' . $this->db->sanitize(implode(',', $pcg_type_filter), 1) . ')';
$sql .= " AND DATE(t.doc_date) >= '" . $this->db->idate($fiscal_period->date_start) . "'";
$sql .= " AND DATE(t.doc_date) <= '" . $this->db->idate($fiscal_period->date_end) . "'";
$sql .= ' GROUP BY t.numero_compte, t.label_compte, aa.pcg_type';
$sql .= ' GROUP BY t.numero_compte, aa.pcg_type';
if ($separate_auxiliary_account) {
$sql .= ' ,t.subledger_account, t.subledger_label';
$sql .= " , NULLIF(t.subledger_account, '')";
}
$sql .= ' HAVING (SUM(t.credit) - SUM(t.debit)) != 0 '; // Exclude rows with opening_balance = 0
$sql .= $this->db->order("t.numero_compte", "ASC");

$resql = $this->db->query($sql);
Expand All @@ -2853,24 +2856,41 @@ public function closeFiscalPeriod($fiscal_period_id, $new_fiscal_period_id, $sep

$bookkeeping = new BookKeeping($this->db);
$bookkeeping->doc_date = $new_fiscal_period->date_start;
$bookkeeping->date_lim_reglement = 0;
$bookkeeping->doc_ref = $new_fiscal_period->label;

$bookkeeping->date_lim_reglement = '';

Check warning on line 2860 in htdocs/accountancy/class/bookkeeping.class.php

View workflow job for this annotation

GitHub Actions / phan / Run phan

bookkeeping.class.php: PhanTypeMismatchPropertyProbablyReal: Assigning '' of type '' to property but \BookKeeping-&gt;date_lim_reglement is int (no real type) (the inferred real assigned type has nothing in common with the declared phpdoc property type)
$bookkeeping->doc_ref = $fiscal_period->label;

$bookkeeping->date_creation = $now;
$bookkeeping->doc_type = 'closure';
$bookkeeping->fk_doc = $new_fiscal_period->id;
$bookkeeping->fk_doc = $fiscal_period->id;
$bookkeeping->fk_docdet = 0; // Useless, can be several lines that are source of this record to add
$bookkeeping->thirdparty_code = '';

if ($separate_auxiliary_account) {
$bookkeeping->subledger_account = $obj->subledger_account;
$bookkeeping->subledger_label = $obj->subledger_label;
$sql = 'SELECT';
$sql .= " subledger_label";
$sql .= " FROM " . MAIN_DB_PREFIX . $this->table_element;
$sql .= " WHERE subledger_account = '" . $this->db->escape($obj->subledger_account) . "'";
$sql .= " ORDER BY doc_date DESC";
$sql .= " LIMIT 1";
$result = $this->db->query($sql);
if (!$result) {
$this->errors[] = 'Error: ' . $this->db->lasterror();
dol_syslog(__METHOD__ . ' ' . join(',', $this->errors), LOG_ERR);

Check warning on line 2880 in htdocs/accountancy/class/bookkeeping.class.php

View workflow job for this annotation

GitHub Actions / phan / Run phan

bookkeeping.class.php: PhanDeprecatedFunctionInternal: Call to deprecated function \join() (Deprecated because: DeprecateAliasPlugin marked this as an alias of implode())
$error++;
}
$objtmp = $this->db->fetch_object($result);
$bookkeeping->subledger_label = $objtmp->subledger_label; // latest subledger label used
} else {
$bookkeeping->subledger_account = '';
$bookkeeping->subledger_label = '';
$bookkeeping->subledger_account = null;

Check warning on line 2886 in htdocs/accountancy/class/bookkeeping.class.php

View workflow job for this annotation

GitHub Actions / phan / Run phan

bookkeeping.class.php: PhanTypeMismatchPropertyProbablyReal: Assigning null of type null to property but \BookKeeping-&gt;subledger_account is string (no real type) (the inferred real assigned type has nothing in common with the declared phpdoc property type)
$bookkeeping->subledger_label = null;

Check warning on line 2887 in htdocs/accountancy/class/bookkeeping.class.php

View workflow job for this annotation

GitHub Actions / phan / Run phan

bookkeeping.class.php: PhanTypeMismatchPropertyProbablyReal: Assigning null of type null to property but \BookKeeping-&gt;subledger_label is string (no real type) (the inferred real assigned type has nothing in common with the declared phpdoc property type)
}

$bookkeeping->numero_compte = $obj->numero_compte;
$bookkeeping->label_compte = $obj->label_compte;
$accountingaccount = new AccountingAccount($this->db);
$accountingaccount->fetch('', $obj->numero_compte);
$bookkeeping->label_compte = $accountingaccount->label; // latest account label used

$bookkeeping->label_operation = $new_fiscal_period->label;
$bookkeeping->montant = $mt;
Expand Down Expand Up @@ -2900,21 +2920,35 @@ public function closeFiscalPeriod($fiscal_period_id, $new_fiscal_period_id, $sep

$bookkeeping = new BookKeeping($this->db);
$bookkeeping->doc_date = $new_fiscal_period->date_start;
$bookkeeping->date_lim_reglement = 0;
$bookkeeping->doc_ref = $new_fiscal_period->label;

$bookkeeping->date_lim_reglement = '';

Check warning on line 2924 in htdocs/accountancy/class/bookkeeping.class.php

View workflow job for this annotation

GitHub Actions / phan / Run phan

bookkeeping.class.php: PhanTypeMismatchPropertyProbablyReal: Assigning '' of type '' to property but \BookKeeping-&gt;date_lim_reglement is int (no real type) (the inferred real assigned type has nothing in common with the declared phpdoc property type)
$bookkeeping->doc_ref = $fiscal_period->label;

$bookkeeping->date_creation = $now;
$bookkeeping->doc_type = 'closure';
$bookkeeping->fk_doc = $new_fiscal_period->id;
$bookkeeping->fk_doc = $fiscal_period->id;
$bookkeeping->fk_docdet = 0; // Useless, can be several lines that are source of this record to add
$bookkeeping->thirdparty_code = '';

if ($separate_auxiliary_account) {
$bookkeeping->subledger_label = '';
$bookkeeping->subledger_account = $obj->subledger_account;
$bookkeeping->subledger_label = $obj->subledger_label;
$sql = 'SELECT';
$sql .= " subledger_label";
$sql .= " FROM " . MAIN_DB_PREFIX . $this->table_element;
$sql .= " WHERE subledger_account = '" . $this->db->escape($obj->subledger_account) . "'";
$sql .= " ORDER BY doc_date DESC";
$sql .= " LIMIT 1";
$result = $this->db->query($sql);
if (!$result) {
$this->errors[] = 'Error: ' . $this->db->lasterror();
dol_syslog(__METHOD__ . ' ' . join(',', $this->errors), LOG_ERR);

Check warning on line 2944 in htdocs/accountancy/class/bookkeeping.class.php

View workflow job for this annotation

GitHub Actions / phan / Run phan

bookkeeping.class.php: PhanDeprecatedFunctionInternal: Call to deprecated function \join() (Deprecated because: DeprecateAliasPlugin marked this as an alias of implode())
$error++;
}
$objtmp = $this->db->fetch_object($result);
$bookkeeping->subledger_label = $objtmp->subledger_label; // latest subledger label used
} else {
$bookkeeping->subledger_account = '';
$bookkeeping->subledger_label = '';
$bookkeeping->subledger_account = null;

Check warning on line 2950 in htdocs/accountancy/class/bookkeeping.class.php

View workflow job for this annotation

GitHub Actions / phan / Run phan

bookkeeping.class.php: PhanTypeMismatchPropertyProbablyReal: Assigning null of type null to property but \BookKeeping-&gt;subledger_account is string (no real type) (the inferred real assigned type has nothing in common with the declared phpdoc property type)
$bookkeeping->subledger_label = null;

Check warning on line 2951 in htdocs/accountancy/class/bookkeeping.class.php

View workflow job for this annotation

GitHub Actions / phan / Run phan

bookkeeping.class.php: PhanTypeMismatchPropertyProbablyReal: Assigning null of type null to property but \BookKeeping-&gt;subledger_label is string (no real type) (the inferred real assigned type has nothing in common with the declared phpdoc property type)
}

$bookkeeping->numero_compte = $accountingaccount->account_number;
Expand Down
2 changes: 1 addition & 1 deletion htdocs/compta/localtax/index.php
Original file line number Diff line number Diff line change
Expand Up @@ -447,7 +447,7 @@ function pt($db, $sql, $date)


print '<tr class="oddeven">';
print '<td class="nowrap"><a href="'.DOL_URL_ROOT.'/compta/localtax/quadri_detail.php?leftmenu=tax_vat&month='.$m.'&year='.$y.'">'.dol_print_date(dol_mktime(0, 0, 0, $m, 1, $y), "%b %Y").'</a></td>';
print '<td class="nowrap"><a href="'.DOL_URL_ROOT.'/compta/localtax/quadri_detail.php?leftmenu=tax_vat&month='.$m.'&year='.$y.'&localTaxType='.$localTaxType.'">'.dol_print_date(dol_mktime(0, 0, 0, (int) $m, 1, (int) $y), "%b %Y").'</a></td>';

$x_coll_sum = 0;
foreach (array_keys($x_coll) as $rate) {
Expand Down
4 changes: 2 additions & 2 deletions htdocs/core/get_menudiv.php
Original file line number Diff line number Diff line change
Expand Up @@ -273,15 +273,15 @@
$menufound = 0;
$dirmenus = array_merge(array("/core/menus/"), (array) $conf->modules_parts['menus']);
foreach ($dirmenus as $dirmenu) {
$menufound = dol_include_once($dirmenu."standard/".$file_menu);
$menufound = dol_include_once($dirmenu."standard/".dol_sanitizeFileName($file_menu));
if ($menufound) {
break;
}
}
if (!$menufound) { // If failed to include, we try with standard
dol_syslog("You define a menu manager '".$file_menu."' that can not be loaded.", LOG_WARNING);
$file_menu = 'eldy_menu.php';
include_once DOL_DOCUMENT_ROOT."/core/menus/standard/".$file_menu;
include_once DOL_DOCUMENT_ROOT."/core/menus/standard/".dol_sanitizeFileName($file_menu);
}
}
$menumanager = new MenuManager($db, empty($user->socid) ? 0 : 1);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -224,7 +224,7 @@ public function runTrigger($action, $object, User $user, Translate $langs, Conf
case 'ORDER_CLASSIFY_BILLED':
case 'ORDER_SETDRAFT':
case 'LINEORDER_INSERT':
case 'LINEORDER_UPDATE':
case 'LINEORDER_MODIFY':
case 'LINEORDER_DELETE':
break;
// Supplier orders
Expand All @@ -239,7 +239,7 @@ public function runTrigger($action, $object, User $user, Translate $langs, Conf
// case 'ORDER_SUPPLIER_RECEIVE':
// case 'LINEORDER_SUPPLIER_DISPATCH':
// case 'LINEORDER_SUPPLIER_CREATE':
// case 'LINEORDER_SUPPLIER_UPDATE':
// case 'LINEORDER_SUPPLIER_MODIFY':

// Proposals
// case 'PROPAL_CREATE':
Expand All @@ -251,7 +251,7 @@ public function runTrigger($action, $object, User $user, Translate $langs, Conf
// case 'PROPAL_CLOSE_REFUSED':
// case 'PROPAL_DELETE':
// case 'LINEPROPAL_INSERT':
// case 'LINEPROPAL_UPDATE':
// case 'LINEPROPAL_MODIFY':
// case 'LINEPROPAL_DELETE':

// SupplierProposal
Expand All @@ -264,7 +264,7 @@ public function runTrigger($action, $object, User $user, Translate $langs, Conf
// case 'SUPPLIER_PROPOSAL_CLOSE_REFUSED':
// case 'SUPPLIER_PROPOSAL_DELETE':
// case 'LINESUPPLIER_PROPOSAL_INSERT':
// case 'LINESUPPLIER_PROPOSAL_UPDATE':
// case 'LINESUPPLIER_PROPOSAL_MODIFY':
// case 'LINESUPPLIER_PROPOSAL_DELETE':

// Contracts
Expand All @@ -274,7 +274,7 @@ public function runTrigger($action, $object, User $user, Translate $langs, Conf
// case 'CONTRACT_CLOSE':
// case 'CONTRACT_DELETE':
// case 'LINECONTRACT_INSERT':
// case 'LINECONTRACT_UPDATE':
// case 'LINECONTRACT_MODIFY':
// case 'LINECONTRACT_DELETE':

// Bills
Expand All @@ -288,19 +288,19 @@ public function runTrigger($action, $object, User $user, Translate $langs, Conf
// case 'BILL_DELETE':
// case 'BILL_PAYED':
// case 'LINEBILL_INSERT':
// case 'LINEBILL_UPDATE':
// case 'LINEBILL_MODIFY':
// case 'LINEBILL_DELETE':

//Supplier Bill
// case 'BILL_SUPPLIER_CREATE':
// case 'BILL_SUPPLIER_UPDATE':
// case 'BILL_SUPPLIER_MODIFY':
// case 'BILL_SUPPLIER_DELETE':
// case 'BILL_SUPPLIER_PAYED':
// case 'BILL_SUPPLIER_UNPAYED':
// case 'BILL_SUPPLIER_VALIDATE':
// case 'BILL_SUPPLIER_UNVALIDATE':
// case 'LINEBILL_SUPPLIER_CREATE':
// case 'LINEBILL_SUPPLIER_UPDATE':
// case 'LINEBILL_SUPPLIER_MODIFY':
// case 'LINEBILL_SUPPLIER_DELETE':

// Payments
Expand All @@ -316,7 +316,7 @@ public function runTrigger($action, $object, User $user, Translate $langs, Conf

// Donation
// case 'DON_CREATE':
// case 'DON_UPDATE':
// case 'DON_MODIFY':
// case 'DON_DELETE':

// Interventions
Expand All @@ -325,7 +325,7 @@ public function runTrigger($action, $object, User $user, Translate $langs, Conf
// case 'FICHINTER_VALIDATE':
// case 'FICHINTER_DELETE':
// case 'LINEFICHINTER_CREATE':
// case 'LINEFICHINTER_UPDATE':
// case 'LINEFICHINTER_MODIFY':
// case 'LINEFICHINTER_DELETE':

// Members
Expand Down
2 changes: 1 addition & 1 deletion htdocs/fourn/facture/card.php
Original file line number Diff line number Diff line change
Expand Up @@ -4098,7 +4098,7 @@ function setRadioForTypeOfInvoice() {
}

// Reverse back money or convert to reduction
if ($object->type == FactureFournisseur::TYPE_CREDIT_NOTE || $object->type == FactureFournisseur::TYPE_DEPOSIT || $object->type == FactureFournisseur::TYPE_STANDARD) {
if ($object->status != FactureFournisseur::STATUS_DRAFT && ($object->type == FactureFournisseur::TYPE_CREDIT_NOTE || $object->type == FactureFournisseur::TYPE_DEPOSIT || $object->type == FactureFournisseur::TYPE_STANDARD)) {
// For credit note only
if ($object->type == FactureFournisseur::TYPE_CREDIT_NOTE && $object->status == 1 && $object->paid == 0) {
if ($resteapayer == 0) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -143,7 +143,7 @@ public function runTrigger($action, $object, User $user, Translate $langs, Conf
//case 'ORDER_CLASSIFY_UNBILLED': // TODO Replace it with ORDER_UNBILLED
//case 'ORDER_SETDRAFT':
//case 'LINEORDER_INSERT':
//case 'LINEORDER_UPDATE':
//case 'LINEORDER_MODIFY':
//case 'LINEORDER_DELETE':

// Supplier orders
Expand All @@ -160,7 +160,7 @@ public function runTrigger($action, $object, User $user, Translate $langs, Conf
//case 'ORDER_SUPPLIER_RECEIVE':
//case 'LINEORDER_SUPPLIER_DISPATCH':
//case 'LINEORDER_SUPPLIER_CREATE':
//case 'LINEORDER_SUPPLIER_UPDATE':
//case 'LINEORDER_SUPPLIER_MODIFY':
//case 'LINEORDER_SUPPLIER_DELETE':

// Proposals
Expand All @@ -174,7 +174,7 @@ public function runTrigger($action, $object, User $user, Translate $langs, Conf
//case 'PROPAL_CLOSE_REFUSED':
//case 'PROPAL_DELETE':
//case 'LINEPROPAL_INSERT':
//case 'LINEPROPAL_UPDATE':
//case 'LINEPROPAL_MODIFY':
//case 'LINEPROPAL_DELETE':

// SupplierProposal
Expand All @@ -186,7 +186,7 @@ public function runTrigger($action, $object, User $user, Translate $langs, Conf
//case 'SUPPLIER_PROPOSAL_CLOSE_REFUSED':
//case 'SUPPLIER_PROPOSAL_DELETE':
//case 'LINESUPPLIER_PROPOSAL_INSERT':
//case 'LINESUPPLIER_PROPOSAL_UPDATE':
//case 'LINESUPPLIER_PROPOSAL_MODIFY':
//case 'LINESUPPLIER_PROPOSAL_DELETE':

// Contracts
Expand All @@ -197,7 +197,7 @@ public function runTrigger($action, $object, User $user, Translate $langs, Conf
//case 'CONTRACT_CLOSE':
//case 'CONTRACT_DELETE':
//case 'LINECONTRACT_INSERT':
//case 'LINECONTRACT_UPDATE':
//case 'LINECONTRACT_MODIFY':
//case 'LINECONTRACT_DELETE':

// Bills
Expand All @@ -210,7 +210,7 @@ public function runTrigger($action, $object, User $user, Translate $langs, Conf
//case 'BILL_DELETE':
//case 'BILL_PAYED':
//case 'LINEBILL_INSERT':
//case 'LINEBILL_UPDATE':
//case 'LINEBILL_MODIFY':
//case 'LINEBILL_DELETE':

// Recurring Bills
Expand All @@ -222,14 +222,14 @@ public function runTrigger($action, $object, User $user, Translate $langs, Conf

//Supplier Bill
//case 'BILL_SUPPLIER_CREATE':
//case 'BILL_SUPPLIER_UPDATE':
//case 'BILL_SUPPLIER_MODIFY':
//case 'BILL_SUPPLIER_DELETE':
//case 'BILL_SUPPLIER_PAYED':
//case 'BILL_SUPPLIER_UNPAYED':
//case 'BILL_SUPPLIER_VALIDATE':
//case 'BILL_SUPPLIER_UNVALIDATE':
//case 'LINEBILL_SUPPLIER_CREATE':
//case 'LINEBILL_SUPPLIER_UPDATE':
//case 'LINEBILL_SUPPLIER_MODIFY':
//case 'LINEBILL_SUPPLIER_DELETE':

// Payments
Expand All @@ -245,7 +245,7 @@ public function runTrigger($action, $object, User $user, Translate $langs, Conf

// Donation
//case 'DON_CREATE':
//case 'DON_UPDATE':
//case 'DON_MODIFY':
//case 'DON_DELETE':

// Interventions
Expand All @@ -256,7 +256,7 @@ public function runTrigger($action, $object, User $user, Translate $langs, Conf
//case 'FICHINTER_CLASSIFY_UNBILLED': // TODO Replace it with FICHINTER_UNBILLED
//case 'FICHINTER_DELETE':
//case 'LINEFICHINTER_CREATE':
//case 'LINEFICHINTER_UPDATE':
//case 'LINEFICHINTER_MODIFY':
//case 'LINEFICHINTER_DELETE':

// Members
Expand Down
6 changes: 4 additions & 2 deletions htdocs/product/class/product.class.php
Original file line number Diff line number Diff line change
Expand Up @@ -2752,7 +2752,8 @@ public function fetch($id = 0, $ref = '', $ref_ext = '', $barcode = '', $ignore_

// Load multiprices array
if (getDolGlobalString('PRODUIT_MULTIPRICES') && empty($ignore_price_load)) { // prices per segment
for ($i = 1; $i <= $conf->global->PRODUIT_MULTIPRICES_LIMIT; $i++) {
$maxi = getDolGlobalInt('PRODUIT_MULTIPRICES_LIMIT');
for ($i = 1; $i <= $maxi; $i++) {
$sql = "SELECT price, price_ttc, price_min, price_min_ttc,";
$sql .= " price_base_type, tva_tx, default_vat_code, tosell, price_by_qty, rowid, recuperableonly";
$sql .= " ,price_label";
Expand Down Expand Up @@ -2868,7 +2869,8 @@ public function fetch($id = 0, $ref = '', $ref_ext = '', $barcode = '', $ignore_
return -1;
}
} elseif (getDolGlobalString('PRODUIT_CUSTOMER_PRICES_BY_QTY_MULTIPRICES') && empty($ignore_price_load)) { // prices per customer and quantity
for ($i = 1; $i <= $conf->global->PRODUIT_MULTIPRICES_LIMIT; $i++) {
$maxi = getDolGlobalInt('PRODUIT_MULTIPRICES_LIMIT');
for ($i = 1; $i <= $maxi; $i++) {
$sql = "SELECT price, price_ttc, price_min, price_min_ttc,";
$sql .= " price_base_type, tva_tx, default_vat_code, tosell, price_by_qty, rowid, recuperableonly";
$sql .= " FROM ".$this->db->prefix()."product_price";
Expand Down
Loading

0 comments on commit 91eb9fc

Please sign in to comment.