add(pmp) PMP per entity
This commit is contained in:
parent
891de3350f
commit
9e2ee5bf57
@ -2181,12 +2181,52 @@ class Product extends CommonObject
|
||||
} else {
|
||||
$sql .= " pa.accountancy_code_buy, pa.accountancy_code_buy_intra, pa.accountancy_code_buy_export, pa.accountancy_code_sell, pa.accountancy_code_sell_intra, pa.accountancy_code_sell_export,";
|
||||
}
|
||||
$sql .= " p.stock,p.pmp, p.datec, p.tms, p.import_key, p.entity, p.desiredstock, p.tobatch, p.batch_mask, p.fk_unit,";
|
||||
//For MultiCompany PMP per entity
|
||||
$separatedEntityPMP = false;
|
||||
if (!empty($conf->global->MULTICOMPANY_PRODUCT_SHARING_ENABLED) && !empty($conf->global->MULTICOMPANY_PMP_PER_ENTITY_ENABLED)) {
|
||||
$checkPMPPerEntity = $this->db->query("SELECT pmp FROM " . MAIN_DB_PREFIX . "entity_product_pmp WHERE fk_product = ".((int) $id)." AND entity = ".(int) $conf->entity);
|
||||
if($this->db->num_rows($checkPMPPerEntity)>0){
|
||||
$separatedEntityPMP = true;
|
||||
}
|
||||
}
|
||||
|
||||
//For MultiCompany Stocks Sharings stock_reel includes only stocks shared with this entity
|
||||
$separatedStock = false;
|
||||
if (!empty($conf->global->MULTICOMPANY_STOCK_SHARING_ENABLED)){
|
||||
global $mc;
|
||||
$separatedStock = true;
|
||||
$visibleWarehousesEntities = $conf->entity;
|
||||
if(isset($mc->sharings['stock']) && !empty($mc->sharings['stock'])){
|
||||
$visibleWarehousesEntities .= "," . implode(",",$mc->sharings['stock']);
|
||||
}
|
||||
}
|
||||
if($separatedStock){
|
||||
$sql .= " SUM(sp.reel) as stock,";
|
||||
}
|
||||
else{
|
||||
$sql .= " p.stock,";
|
||||
}
|
||||
|
||||
if ($separatedEntityPMP){
|
||||
$sql .= " ppe.pmp, p.datec, p.tms, p.import_key, p.entity, p.desiredstock, p.tobatch, p.batch_mask, p.fk_unit,";
|
||||
}
|
||||
else{
|
||||
$sql .= " p.pmp, p.datec, p.tms, p.import_key, p.entity, p.desiredstock, p.tobatch, p.batch_mask, p.fk_unit,";
|
||||
}
|
||||
$sql .= " p.fk_price_expression, p.price_autogen, p.model_pdf";
|
||||
$sql .= " FROM ".MAIN_DB_PREFIX."product as p";
|
||||
if (!empty($conf->global->MAIN_PRODUCT_PERENTITY_SHARED)) {
|
||||
$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "product_perentity as pa ON pa.fk_product = p.rowid AND pa.entity = " . ((int) $conf->entity);
|
||||
}
|
||||
|
||||
if ($separatedEntityPMP) {
|
||||
$sql .= " INNER JOIN " . MAIN_DB_PREFIX . "entity_product_pmp as ppe ON ppe.fk_product = p.rowid";
|
||||
}
|
||||
|
||||
if($separatedStock){
|
||||
$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "product_stock as sp ON sp.fk_product = p.rowid";
|
||||
}
|
||||
|
||||
if ($id) {
|
||||
$sql .= " WHERE p.rowid = ".((int) $id);
|
||||
} else {
|
||||
@ -2200,6 +2240,17 @@ class Product extends CommonObject
|
||||
}
|
||||
}
|
||||
|
||||
if ($separatedEntityPMP) {
|
||||
$sql .= " AND ppe.entity = " . (int) $conf->entity;
|
||||
}
|
||||
|
||||
if($separatedStock){
|
||||
$sql .= " AND sp.fk_entrepot IN (
|
||||
SELECT rowid
|
||||
FROM ".MAIN_DB_PREFIX."entrepot WHERE entity IN (" . $visibleWarehousesEntities ."))";
|
||||
}
|
||||
|
||||
|
||||
$resql = $this->db->query($sql);
|
||||
if ($resql) {
|
||||
unset($this->oldcopy);
|
||||
|
||||
@ -596,15 +596,38 @@ if ($action == 'create') {
|
||||
$totalunit = 0;
|
||||
$totalvalue = $totalvaluesell = 0;
|
||||
|
||||
$sql = "SELECT p.rowid as rowid, p.ref, p.label as produit, p.tobatch, p.fk_product_type as type, p.pmp as ppmp, p.price, p.price_ttc, p.entity,";
|
||||
//For MultiCompany PMP per entity
|
||||
$separatedPMP = false;
|
||||
if (!empty($conf->global->MULTICOMPANY_PRODUCT_SHARING_ENABLED) && !empty($conf->global->MULTICOMPANY_PMP_PER_ENTITY_ENABLED)) {
|
||||
$separatedPMP = true;
|
||||
}
|
||||
|
||||
$sql = "SELECT p.rowid as rowid, p.ref, p.label as produit, p.tobatch, p.fk_product_type as type, p.price, p.price_ttc, p.entity,";
|
||||
if ($separatedPMP) {
|
||||
$sql .= " ppe.pmp as ppmp,";
|
||||
}
|
||||
else{
|
||||
$sql .= " p.pmp as ppmp,";
|
||||
}
|
||||
|
||||
$sql .= " ps.reel as value";
|
||||
if (!empty($conf->global->PRODUCT_USE_UNITS)) {
|
||||
$sql .= ",fk_unit";
|
||||
}
|
||||
$sql .= " FROM ".MAIN_DB_PREFIX."product_stock as ps, ".MAIN_DB_PREFIX."product as p";
|
||||
|
||||
if ($separatedPMP) {
|
||||
$sql .= ", ".MAIN_DB_PREFIX."entity_product_pmp as ppe";
|
||||
}
|
||||
|
||||
$sql .= " WHERE ps.fk_product = p.rowid";
|
||||
$sql .= " AND ps.reel <> 0"; // We do not show if stock is 0 (no product in this warehouse)
|
||||
$sql .= " AND ps.fk_entrepot = ".$object->id;
|
||||
|
||||
if ($separatedPMP) {
|
||||
$sql .= " AND ppe.fk_product = p.rowid AND ppe.entity = ". (int) $conf->entity;
|
||||
}
|
||||
|
||||
$sql .= $db->order($sortfield, $sortorder);
|
||||
|
||||
dol_syslog('List products', LOG_DEBUG);
|
||||
|
||||
@ -610,13 +610,36 @@ class Entrepot extends CommonObject
|
||||
*/
|
||||
public function nb_products()
|
||||
{
|
||||
global $conf;
|
||||
// phpcs:enable
|
||||
$ret = array();
|
||||
|
||||
$sql = "SELECT sum(ps.reel) as nb, sum(ps.reel * p.pmp) as value";
|
||||
//For MultiCompany PMP per entity
|
||||
$separatedPMP = false;
|
||||
if (!empty($conf->global->MULTICOMPANY_PRODUCT_SHARING_ENABLED) && !empty($conf->global->MULTICOMPANY_PMP_PER_ENTITY_ENABLED)) {
|
||||
$separatedPMP = true;
|
||||
}
|
||||
|
||||
if ($separatedPMP) {
|
||||
$sql = "SELECT sum(ps.reel) as nb, sum(ps.reel * ppe.pmp) as value";
|
||||
}
|
||||
else{
|
||||
$sql = "SELECT sum(ps.reel) as nb, sum(ps.reel * p.pmp) as value";
|
||||
}
|
||||
$sql .= " FROM ".MAIN_DB_PREFIX."product_stock as ps";
|
||||
|
||||
$sql .= ", ".MAIN_DB_PREFIX."product as p";
|
||||
|
||||
if ($separatedPMP) {
|
||||
$sql .= ", ".MAIN_DB_PREFIX."entity_product_pmp as ppe";
|
||||
}
|
||||
|
||||
$sql .= " WHERE ps.fk_entrepot = ".$this->id;
|
||||
|
||||
if ($separatedPMP) {
|
||||
$sql .= " AND ppe.fk_product = p.rowid AND ppe.entity = ". (int) $conf->entity;
|
||||
}
|
||||
|
||||
$sql .= " AND ps.fk_product = p.rowid";
|
||||
|
||||
//print $sql;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user