diff --git a/REST/functions.php b/REST/functions.php
index 7138f836..e590d8e5 100644
--- a/REST/functions.php
+++ b/REST/functions.php
@@ -143,7 +143,7 @@
$new->parent_nip = "8792676609";
$new->parent_iln = "5909000837119";
$new->pricebook_id = "13b29aa1-48f0-de58-7630-59c22756c5e4";
- $new->status = "s10";
+ $new->status = "s30";
$new->type = "sales_order";
$new->name = $sale->name;
$new->ecmpaymentcondition_name = "90 dni";
diff --git a/include/language/en_us.EcmDropdownEditor.php b/include/language/en_us.EcmDropdownEditor.php
index b7fe168a..d78ef481 100644
--- a/include/language/en_us.EcmDropdownEditor.php
+++ b/include/language/en_us.EcmDropdownEditor.php
@@ -1,5 +1,5 @@
array (
@@ -73,6 +73,8 @@ $customDoms = array (
'cb66a685-53e1-5f87-0a25-66967c7cb63b' => 'Doypack 210x285mm',
'75f4bd2a-51a8-0767-635e-66dde15af79e' => 'Foam 200ml',
'225115e4-1ce2-9a98-b7a0-672930e3318c' => 'Blister tabletki 10szt. 2 g',
+ 'e6900d92-6fde-90e6-b872-67d1938745e6' => 'Słoik 400 ml',
+ 'e3e0c9da-6d08-e1e0-b9ba-67eaa437cb84' => 'Bottle B1_30ml',
),
'ecmproducts_brand_dom' =>
array (
@@ -156,6 +158,11 @@ $customDoms = array (
'7ceeacc7-e79b-4eb0-2aa3-676529593a3c' => 'PureNest',
'ca4ee928-3385-d7f8-090e-678e697c3b8e' => 'gc clean!',
'9d630708-a3f3-de9b-bbe0-67a9dfd114a2' => 'MPM',
+ '842115cd-b258-862b-1f7e-67b437f1358e' => 'Praxs',
+ 'c1e01314-cf64-a48f-9b24-67b58e00952b' => '3mk',
+ '661388b9-ac42-d5a8-2503-67b856a06f52' => 'Coffeeano',
+ '1f9d4c5d-670e-4c77-d4de-67cddc908559' => 'DeCal',
+ '5c883b90-f1fb-83d1-6347-67dbd49469f0' => 'EntertainME',
),
'ecmproducts_category_dom' =>
array (
@@ -197,6 +204,7 @@ $customDoms = array (
'f2156355-d06b-2904-d759-67923795c77b' => 'Oven Cleaners',
'27697ebf-0d8e-5156-528e-679237ffd78f' => 'Toilet Cleaners',
'f03ef1ce-e218-97eb-623e-679d00f02f98' => 'Car Cleaning',
+ '30f0082f-6f41-a3ee-cb9a-67caecd873ab' => 'Impregantors',
),
'ecmquotes_status_dom' =>
array (
diff --git a/include/language/pl_pl.EcmDropdownEditor.php b/include/language/pl_pl.EcmDropdownEditor.php
index c7539cda..8d0c8b8a 100644
--- a/include/language/pl_pl.EcmDropdownEditor.php
+++ b/include/language/pl_pl.EcmDropdownEditor.php
@@ -1,5 +1,5 @@
array (
@@ -73,6 +73,8 @@ $customDoms = array (
'cb66a685-53e1-5f87-0a25-66967c7cb63b' => 'Doypack 210x285mm',
'75f4bd2a-51a8-0767-635e-66dde15af79e' => 'Pianka 200ml',
'225115e4-1ce2-9a98-b7a0-672930e3318c' => 'Blister tabletki 10szt. 2 g',
+ 'e6900d92-6fde-90e6-b872-67d1938745e6' => 'Słoik 400 ml',
+ 'e3e0c9da-6d08-e1e0-b9ba-67eaa437cb84' => 'Butelka B1_30ml',
),
'ecmproducts_brand_dom' =>
array (
@@ -156,6 +158,11 @@ $customDoms = array (
'7ceeacc7-e79b-4eb0-2aa3-676529593a3c' => 'PureNest',
'ca4ee928-3385-d7f8-090e-678e697c3b8e' => 'gc clean!',
'9d630708-a3f3-de9b-bbe0-67a9dfd114a2' => 'MPM',
+ '842115cd-b258-862b-1f7e-67b437f1358e' => 'Praxs',
+ 'c1e01314-cf64-a48f-9b24-67b58e00952b' => '3mk',
+ '661388b9-ac42-d5a8-2503-67b856a06f52' => 'Coffeeano',
+ '1f9d4c5d-670e-4c77-d4de-67cddc908559' => 'DeCal',
+ '5c883b90-f1fb-83d1-6347-67dbd49469f0' => 'EntertainME',
),
'ecmproducts_category_dom' =>
array (
@@ -197,6 +204,7 @@ $customDoms = array (
'f2156355-d06b-2904-d759-67923795c77b' => 'Środki do czyszczenia piekarnika',
'27697ebf-0d8e-5156-528e-679237ffd78f' => 'Środki do czyszczenia toalet',
'f03ef1ce-e218-97eb-623e-679d00f02f98' => 'Środki do czyszczenia samochodów',
+ '30f0082f-6f41-a3ee-cb9a-67caecd873ab' => 'Środki do impregnacji powierzchni',
),
'ecmquotes_status_dom' =>
array (
diff --git a/modules/EcmPriceBooks/DetailView.html b/modules/EcmPriceBooks/DetailView.html
index c580fcf0..1e5c0563 100755
--- a/modules/EcmPriceBooks/DetailView.html
+++ b/modules/EcmPriceBooks/DetailView.html
@@ -129,7 +129,6 @@ function showBlock(id)
-
{PAGINATION1}
diff --git a/modules/EcmProducts/EcmProduct.php b/modules/EcmProducts/EcmProduct.php
index 47f2c75a..1e7d95b2 100755
--- a/modules/EcmProducts/EcmProduct.php
+++ b/modules/EcmProducts/EcmProduct.php
@@ -316,8 +316,8 @@ class EcmProduct extends SugarBean {
$this->url9 = ' '.$this->url9.'';
}
- $r = $GLOBALS['db']->fetchByAssoc($GLOBALS['db']->query("SELECT SUM(quantity) as qty FROM ecmstockstates WHERE product_id='".$this->id."'"));
- $this->ems_qty_in_stock = $r['qty'];
+ //$r = $GLOBALS['db']->fetchByAssoc($GLOBALS['db']->query("SELECT SUM(quantity) as qty FROM ecmstockstates WHERE product_id='".$this->id."'"));
+ //$this->ems_qty_in_stock = $r['qty'];
}
function getSale($date){
foreach($date as $d){
diff --git a/modules/EcmReports/BimIT-Reports/productsBySales/productsBySales.js b/modules/EcmReports/BimIT-Reports/productsBySales/productsBySales.js
index ffdaccbb..e1baf937 100644
--- a/modules/EcmReports/BimIT-Reports/productsBySales/productsBySales.js
+++ b/modules/EcmReports/BimIT-Reports/productsBySales/productsBySales.js
@@ -478,6 +478,7 @@ function addToProductionScheduler(orderItemId) {
success: function ()
{
hideLoader();
+ $("#productScheduled-"+orderItemId).css('visibility', 'visible');
window.alert("Dodano do harmonogramu produkcji.");
},
});
diff --git a/modules/EcmReports/BimIT-Reports/productsBySales/productsBySales.php b/modules/EcmReports/BimIT-Reports/productsBySales/productsBySales.php
index 53d1c50a..bb58034f 100644
--- a/modules/EcmReports/BimIT-Reports/productsBySales/productsBySales.php
+++ b/modules/EcmReports/BimIT-Reports/productsBySales/productsBySales.php
@@ -353,9 +353,9 @@ function getProductRawMaterials($productId, $quantity)
function addToProductionScheduler($orderItemId) {
$db = $GLOBALS['db'];
global $current_user;
- $res = $db->fetchByAssoc($db->query("SELECT quantity, ecmproduct_id, production_date, description, ecmsale_id FROM ecmsaleitems WHERE id ='$orderItemId'"));
- $query = sprintf("INSERT INTO productionScheduler VALUES ('%s', '%s', '%s', '%d', NOW(), NOW(), '%s', '%s', 0, '%s', 0, '%s', '%s');",
- generateUuidV4(), $orderItemId, $res['ecmsale_id'], $res['quantity'], $current_user->id, $current_user->id, $res['ecmproduct_id'], $res['production_date'], $res['description']);
+ $res = $db->fetchByAssoc($db->query("SELECT quantity, ecmproduct_id, description, ecmsale_id FROM ecmsaleitems WHERE id ='$orderItemId'"));
+ $query = sprintf("INSERT INTO productionScheduler VALUES ('%s', '%s', '%s', '%d', NOW(), NOW(), '%s', '%s', 0, '%s', 0, '','%s');",
+ generateUuidV4(), $orderItemId, $res['ecmsale_id'], $res['quantity'], $current_user->id, $current_user->id, $res['ecmproduct_id'], $res['description']);
$db->query($query);
}
diff --git a/modules/EcmReports/BimIT-Reports/productsBySales/productsBySales.tpl b/modules/EcmReports/BimIT-Reports/productsBySales/productsBySales.tpl
index f6e6fdb9..5da83b0b 100644
--- a/modules/EcmReports/BimIT-Reports/productsBySales/productsBySales.tpl
+++ b/modules/EcmReports/BimIT-Reports/productsBySales/productsBySales.tpl
@@ -178,9 +178,7 @@
- {if $ROW.scheduled > 0}
-
- {/if}
+
diff --git a/modules/EcmReports/ReportSales.inc.php b/modules/EcmReports/ReportSales.inc.php
index c06da8be..5195722a 100644
--- a/modules/EcmReports/ReportSales.inc.php
+++ b/modules/EcmReports/ReportSales.inc.php
@@ -1,88 +1,83 @@
query ($queryUsers);
- while($rowUser = $db->fetchByAssoc ( $rowsUsers ))
- {
- $users["first"] = $rowUser["first"];
- $users["last"] = $rowUser["last"];
- $users["id"] = $rowUser["id"];
- $datausers [] = $users;
- }
-
- if($searchBy=="contractor")
- {
- $groupBy="name";
- }else{
- $groupBy="id";
- }
-
- if($searchBy=="product")
- {
- $query = "SELECT
+$rowsUsers = $db->query($queryUsers);
+while ($rowUser = $db->fetchByAssoc($rowsUsers)) {
+ $users["first"] = $rowUser["first"];
+ $users["last"] = $rowUser["last"];
+ $users["id"] = $rowUser["id"];
+ $datausers[] = $users;
+}
+
+if ($searchBy == "contractor") {
+ $groupBy = "name";
+} else {
+ $groupBy = "id";
+}
+
+if ($searchBy == "product") {
+ $query = "SELECT
pozycja.name,
pozycja.ecmproduct_id as 'id',
faktura.parent_id as 'parent_id',
@@ -127,7 +122,14 @@
pozycja.price_purchase*pozycja.quantity_corrected
END
) as koszt,
- (SELECT SUM(s.quantity) FROM ecmstockstates s WHERE s.product_id = pozycja.ecmproduct_id) as state
+ (SELECT SUM(s.quantity) FROM ecmstockstates s WHERE s.product_id = pozycja.ecmproduct_id) as state,
+ (SELECT SUM(si.quantity)
+ FROM ecmsaleitems si
+ JOIN ecmsales sa ON si.ecmsale_id = sa.id
+ WHERE si.ecmproduct_id = pozycja.ecmproduct_id
+ AND sa.status = 's30'
+ AND sa.type = 'sales_order'
+ AND sa.send_date >= NOW()) AS ordered_quantity
FROM
ecminvoiceoutitems pozycja
JOIN
@@ -136,27 +138,26 @@
ecmproducts produkt ON pozycja.ecmproduct_id = produkt.id
WHERE
faktura.register_date BETWEEN
- '".$date_from_to_query->format('Y-m-d')."' AND
- '".$date_to_to_query->format('Y-m-d')."'
- and faktura.type like '".$searchByType."'
+ '" . $date_from_to_query->format('Y-m-d') . "' AND
+ '" . $date_to_to_query->format('Y-m-d') . "'
+ and faktura.type like '" . $searchByType . "'
and faktura.canceled = 0
and faktura.deleted= 0";
- if ($selectPdfType!="")
- $query.= " and faktura.pdf_type='$selectPdfType'";
- $query .= " and pozycja.deleted= 0 ";
-
- if($addTwinpol ===0 ){
- $query .= " and faktura.parent_id <> '1b9643ca-5b1a-8f9b-b809-586b5619b068' ";
- }
-
- if($group_ks!='%'){
- $query .= "AND produkt.group_ks LIKE '$group_ks'";
- }
- $query .= "GROUP BY pozycja.id
+ if ($selectPdfType != "")
+ $query .= " and faktura.pdf_type='$selectPdfType'";
+ $query .= " and pozycja.deleted= 0 ";
+
+ if ($addTwinpol === 0) {
+ $query .= " and faktura.parent_id <> '1b9643ca-5b1a-8f9b-b809-586b5619b068' ";
+ }
+
+ if ($group_ks != '%') {
+ $query .= "AND produkt.group_ks LIKE '$group_ks'";
+ }
+ $query .= "GROUP BY pozycja.id
COLLATE utf8_polish_ci;";
-
- }else if ($searchBy=="contractor"){
- $query = "SELECT
+} else if ($searchBy == "contractor") {
+ $query = "SELECT
faktura.parent_name as 'name',
faktura.parent_id as 'parent_id',
pozycja.name as 'product_name',
@@ -209,350 +210,309 @@
accounts acco ON acco.id = faktura.parent_id
WHERE
faktura.register_date BETWEEN
- '".$date_from_to_query->format('Y-m-d')."' AND
- '".$date_to_to_query->format('Y-m-d')."'
- and faktura.type like '".$searchByType."'
+ '" . $date_from_to_query->format('Y-m-d') . "' AND
+ '" . $date_to_to_query->format('Y-m-d') . "'
+ and faktura.type like '" . $searchByType . "'
and faktura.canceled = 0
and faktura.deleted= 0";
- if ($selectPdfType!="")
- $query.= " and faktura.pdf_type='$selectPdfType'";
- $query .= " and pozycja.deleted= 0
+ if ($selectPdfType != "")
+ $query .= " and faktura.pdf_type='$selectPdfType'";
+ $query .= " and pozycja.deleted= 0
and produkt.group_ks LIKE '$group_ks'";
-
- if($addTwinpol ===0 ){
- $query .= " and faktura.parent_id <> '1b9643ca-5b1a-8f9b-b809-586b5619b068' ";
- }
- $query .= "GROUP BY pozycja.id
+ if ($addTwinpol === 0) {
+ $query .= " and faktura.parent_id <> '1b9643ca-5b1a-8f9b-b809-586b5619b068' ";
+ }
+
+ $query .= "GROUP BY pozycja.id
COLLATE utf8_polish_ci;";
- }
-
-
- /*****************************************************/
- /*************** GET DATA FROM DB*********************/
- /*****************************************************/
- $rows = $db->query ($query);
- // prepare data for Smarty
- while($r = $db->fetchByAssoc ( $rows ))
- {
- $row = array();
- $row["id"] = $r["id"];
- if( $r["parent2"] == 1249)
- $row["name"] = "Media Saturn Holding";
- else
- $row["name"] = $r["name"];
-
- $row["code"]=$r["code"];
- $row["state"]=$r["state"];
- $row["parent_id"]=$r["parent_id"];
- $row["type"]=$r["type"];
-
- $userBool=1;
- if($selectUser!="")
- {
- $userBool=0;
- $querySelectUsers="SELECT user.id,
+}
+
+
+/*****************************************************/
+/*************** GET DATA FROM DB*********************/
+/*****************************************************/
+$rows = $db->query($query);
+// prepare data for Smarty
+while ($r = $db->fetchByAssoc($rows)) {
+ $row = array();
+ $row["id"] = $r["id"];
+ if ($r["parent2"] == 1249)
+ $row["name"] = "Media Saturn Holding";
+ else
+ $row["name"] = $r["name"];
+
+ $row["code"] = $r["code"];
+ $row["state"] = $r["state"];
+ $row["ordered_quantity"] = $r["ordered_quantity"];
+ $row["parent_id"] = $r["parent_id"];
+ $row["type"] = $r["type"];
+
+ $userBool = 1;
+ if ($selectUser != "") {
+ $userBool = 0;
+ $querySelectUsers = "SELECT user.id,
first_name as 'first',
last_name as 'last'
FROM
accounts acc
JOIN
users user ON acc.assigned_user_id=user.id
- WHERE acc.id='".$r["parent_id"]."';";
- $rowsSelectUsers = $db->query ($querySelectUsers);
- while($rowSelectUser = $db->fetchByAssoc ( $rowsSelectUsers ))
- {
- if($rowSelectUser["id"]==$selectUser)
- {
- $userBool=1;
- }else{
- $userBool=0;
- }
- }
- }
-
- if($userBool==1)
- {
- if($searchBy=="contractor")
- {
- $row["product_name"]=$r["product_name"];
- }else{
- $row["product_name"]=$r["name"];
- }
+ WHERE acc.id='" . $r["parent_id"] . "';";
+ $rowsSelectUsers = $db->query($querySelectUsers);
+ while ($rowSelectUser = $db->fetchByAssoc($rowsSelectUsers)) {
+ if ($rowSelectUser["id"] == $selectUser) {
+ $userBool = 1;
+ } else {
+ $userBool = 0;
+ }
+ }
+ }
-
- $querySubCategory="SELECT category.name as 'podkategoria'
+ if ($userBool == 1) {
+ if ($searchBy == "contractor") {
+ $row["product_name"] = $r["product_name"];
+ } else {
+ $row["product_name"] = $r["name"];
+ }
+
+
+ $querySubCategory = "SELECT category.name as 'podkategoria'
FROM
ecmproductcategories_bean bean
JOIN
ecmproductcategories category ON bean.ecmproductcategory_id = category.id
- WHERE bean.bean_id='".$row["id"]."'
+ WHERE bean.bean_id='" . $row["id"] . "'
and bean.position = '1'
and bean.deleted = '0'
and category.deleted = '0';";
- $rowsSubCategory = $db->query ($querySubCategory);
- while($rowSubCategory = $db->fetchByAssoc ( $rowsSubCategory ))
- {
- $row["podkategoria"] = $rowSubCategory["podkategoria"];
- }
-
- $queryCategory="SELECT category.name as 'kategoria'
+ $rowsSubCategory = $db->query($querySubCategory);
+ while ($rowSubCategory = $db->fetchByAssoc($rowsSubCategory)) {
+ $row["podkategoria"] = $rowSubCategory["podkategoria"];
+ }
+
+ $queryCategory = "SELECT category.name as 'kategoria'
FROM
ecmproductcategories_bean bean
JOIN
ecmproductcategories category ON bean.ecmproductcategory_id = category.id
- WHERE bean.bean_id='".$row["id"]."'
+ WHERE bean.bean_id='" . $row["id"] . "'
and bean.position = '0'
and bean.deleted = '0'
and category.deleted = '0';";
- $rowscategory = $db->query ($queryCategory);
- while($rowcategory = $db->fetchByAssoc ( $rowscategory ))
- {
-
- $row["kategoria"] = $rowcategory["kategoria"];
- }
- $row["ilosc"] = $r["ilosc"];
- $row["netto"] = $r["netto"];
- $row["srednia"] = $row["netto"]/$row["ilosc"];
- $row["koszt"] = $r["koszt"];
- //if($row["netto"]>$row["koszt"])
- //{
- $row["marza"] = ($row["netto"]-$row["koszt"])/($row["netto"])*100;
- //}else{
- //$row["marza"] = 0;
- //}
-
- $data [] = $row;
- }
+ $rowscategory = $db->query($queryCategory);
+ while ($rowcategory = $db->fetchByAssoc($rowscategory)) {
+
+ $row["kategoria"] = $rowcategory["kategoria"];
+ }
+ $row["ilosc"] = $r["ilosc"];
+ $row["netto"] = $r["netto"];
+ $row["srednia"] = $row["netto"] / $row["ilosc"];
+ $row["koszt"] = $r["koszt"];
+ //if($row["netto"]>$row["koszt"])
+ //{
+ $row["marza"] = ($row["netto"] - $row["koszt"]) / ($row["netto"]) * 100;
+ //}else{
+ //$row["marza"] = 0;
+ //}
+
+ $data[] = $row;
}
-
- if($searchBy!="")
+}
+
+if ($searchBy != "") {
+ ////////////////// SUM /////////////////////////////////
+ foreach ($data as $key => &$element) {
+ if ($element["netto"] != 0) {
+ $categoryArray[$element["kategoria"] == "" ? "Inne" : $element["kategoria"]][$element["podkategoria"] == "" ? "Reszta" : $element["podkategoria"]][$key] = $element;
+ } else {
+ //echo "Nie przechodzi: ";
+ //print_r( $element );
+ }
+ }
+
+ foreach ($categoryArray as $key => &$element) {
+ foreach ($element as $keyy => &$elementt) {
+ foreach ($elementt as $keyyy => &$elementtt) {
+ $sumSub["IloscSum"][$key] += $elementtt["ilosc"];
+ $sumSub["SoldSum"][$key] += $elementtt["netto"];
+ //if($elementtt["type"]=="normal")
+ //{
+ $sumSub["SoldSumNormal"][$key] += $elementtt["netto"];
+ $sumSub["IloscNormal"][$key] += $elementtt["ilosc"];
+ //}else{
+ // $sumSub["SoldSumNormal"][$key] += 0;
+ //$sumSub["IloscNormal"][$key] += 0;
+ // }
+ $sumSub["KosztSum"][$key] += $elementtt["koszt"];
+
+ $sumSub2["IloscSum"][$key][$keyy] += $elementtt["ilosc"];
+ $sumSub2["SoldSum"][$key][$keyy] += $elementtt["netto"];
+ //if($elementtt["type"]=="normal")
+ //{
+ $sumSub2["SoldSumNormal"][$key][$keyy] += $elementtt["netto"];
+ $sumSub2["IloscNormal"][$key][$keyy] += $elementtt["ilosc"];
+ //}else{
+ // $sumSub2["SoldSumNormal"][$key][$keyy] += 0;
+ // $sumSub2["IloscNormal"][$key][$keyy] += 0;
+ //}
+ $sumSub2["KosztSum"][$key][$keyy] += $elementtt["koszt"];
+ }
+ $categoryArray[$key][$keyy]["IloscSum2"] = $sumSub2["IloscSum"][$key][$keyy];
+ $categoryArray[$key][$keyy]["SoldSum2"] = $sumSub2["SoldSum"][$key][$keyy];
+ $categoryArray[$key][$keyy]["SoldSumNormal2"] = $sumSub2["SoldSumNormal"][$key][$keyy];
+ $categoryArray[$key][$keyy]["IloscNormal2"] = $sumSub2["IloscNormal"][$key][$keyy];
+ $categoryArray[$key][$keyy]["KosztSum2"] = $sumSub2["KosztSum"][$key][$keyy];
+ }
+ $categoryArray[$key]["IloscSum"] = $sumSub["IloscSum"][$key];
+ $categoryArray[$key]["SoldSum"] = $sumSub["SoldSum"][$key];
+ $categoryArray[$key]["SoldSumNormal"] = $sumSub["SoldSumNormal"][$key];
+ $categoryArray[$key]["IloscNormal"] = $sumSub["IloscNormal"][$key];
+ $categoryArray[$key]["KosztSum"] = $sumSub["KosztSum"][$key];
+ }
+
+ foreach ($categoryArray as $key => &$element) {
+ $sum["IloscSumSum"] += $sumSub["IloscSum"][$key];
+ $sum["SoldSumSum"] += $sumSub["SoldSum"][$key];
+ $sum["SoldSumSumNormal"] += $sumSub["SoldSumNormal"][$key];
+ $sum["IloscNormal"] += $sumSub["IloscNormal"][$key];
+ $sum["KosztSumSum"] += $sumSub["KosztSum"][$key];
+ }
+
+ $sum["SredniaSumSum"] = $sum["SoldSumSumNormal"] / $sum["IloscNormal"];
+ $sum["MarzaSumSum"] = ($sum["SoldSumSumNormal"] - $sum["KosztSumSum"]) / $sum["SoldSumSumNormal"] * 100;
+
+
+
+ function cmp($a, $b)
{
- ////////////////// SUM /////////////////////////////////
- foreach( $data as $key=>&$element )
- { if($element["netto"]!=0)
- {
- $categoryArray[$element["kategoria"] == "" ? "Inne" : $element["kategoria"]][$element["podkategoria"] == "" ? "Reszta" : $element["podkategoria"]][$key] = $element;
- } else {
- //echo "Nie przechodzi: ";
- //print_r( $element );
- }
- }
-
- foreach( $categoryArray as $key=>&$element )
- {
- foreach( $element as $keyy=>&$elementt )
- {
- foreach( $elementt as $keyyy=>&$elementtt )
- {
- $sumSub["IloscSum"][$key] += $elementtt["ilosc"];
- $sumSub["SoldSum"][$key] += $elementtt["netto"];
- //if($elementtt["type"]=="normal")
- //{
- $sumSub["SoldSumNormal"][$key] += $elementtt["netto"];
- $sumSub["IloscNormal"][$key] += $elementtt["ilosc"];
- //}else{
- // $sumSub["SoldSumNormal"][$key] += 0;
- //$sumSub["IloscNormal"][$key] += 0;
- // }
- $sumSub["KosztSum"][$key] += $elementtt["koszt"];
-
- $sumSub2["IloscSum"][$key][$keyy] += $elementtt["ilosc"];
- $sumSub2["SoldSum"][$key][$keyy] += $elementtt["netto"];
- //if($elementtt["type"]=="normal")
- //{
- $sumSub2["SoldSumNormal"][$key][$keyy] += $elementtt["netto"];
- $sumSub2["IloscNormal"][$key][$keyy] += $elementtt["ilosc"];
- //}else{
- // $sumSub2["SoldSumNormal"][$key][$keyy] += 0;
- // $sumSub2["IloscNormal"][$key][$keyy] += 0;
- //}
- $sumSub2["KosztSum"][$key][$keyy] += $elementtt["koszt"];
- }
- $categoryArray[$key][$keyy]["IloscSum2"] = $sumSub2["IloscSum"][$key][$keyy];
- $categoryArray[$key][$keyy]["SoldSum2"] = $sumSub2["SoldSum"][$key][$keyy];
- $categoryArray[$key][$keyy]["SoldSumNormal2"] = $sumSub2["SoldSumNormal"][$key][$keyy];
- $categoryArray[$key][$keyy]["IloscNormal2"] = $sumSub2["IloscNormal"][$key][$keyy];
- $categoryArray[$key][$keyy]["KosztSum2"] = $sumSub2["KosztSum"][$key][$keyy];
+ if ($a['name'] == $b['name']) {
+ return 0;
+ }
+ return ($a['name'] < $b['name']) ? -1 : 1;
+ }
- }
- $categoryArray[$key]["IloscSum"] = $sumSub["IloscSum"][$key];
- $categoryArray[$key]["SoldSum"] = $sumSub["SoldSum"][$key];
- $categoryArray[$key]["SoldSumNormal"] = $sumSub["SoldSumNormal"][$key];
- $categoryArray[$key]["IloscNormal"] = $sumSub["IloscNormal"][$key];
- $categoryArray[$key]["KosztSum"] = $sumSub["KosztSum"][$key];
- }
-
- foreach( $categoryArray as $key=>&$element )
- {
- $sum["IloscSumSum"] += $sumSub["IloscSum"][$key];
- $sum["SoldSumSum"] += $sumSub["SoldSum"][$key];
- $sum["SoldSumSumNormal"] += $sumSub["SoldSumNormal"][$key];
- $sum["IloscNormal"] += $sumSub["IloscNormal"][$key];
- $sum["KosztSumSum"] += $sumSub["KosztSum"][$key];
- }
-
- $sum["SredniaSumSum"] = $sum["SoldSumSumNormal"]/$sum["IloscNormal"];
- $sum["MarzaSumSum"] = ($sum["SoldSumSumNormal"]-$sum["KosztSumSum"])/$sum["SoldSumSumNormal"]*100;
-
-
-
- function cmp($a, $b)
- {
- if ($a['name'] == $b['name']) {
- return 0;
- }
- return ($a['name'] < $b['name']) ? -1 : 1;
- }
-
- function cmp2($a, $b)
- {
- if ($a['id'] == $b['id']) {
- return 0;
- }
- return ($a['id'] < $b['id']) ? -1 : 1;
- }
-
- // grupowanie po kontrahentach
- foreach($categoryArray as $key1=>&$element1)
- {
- foreach($element1 as $key2=>&$element2)
- {
- $tmp2[$key1][$key2]["IloscSum2"] = $categoryArray[$key1][$key2]["IloscSum2"];
- $tmp2[$key1][$key2]["SoldSum2"] = $categoryArray[$key1][$key2]["SoldSum2"];
- $tmp2[$key1][$key2]["SoldSumNormal2"] = $categoryArray[$key1][$key2]["SoldSumNormal2"];
- $tmp2[$key1][$key2]["IloscNormal2"] = $categoryArray[$key1][$key2]["IloscNormal2"];
- $tmp2[$key1][$key2]["KosztSum2"] = $categoryArray[$key1][$key2]["KosztSum2"];
-
- if($searchBy=="contractor")
- {
- usort($element2, "cmp");
- }else{
- usort($element2, "cmp2");
- }
- $i=0;
- $tmp2[$key1][$key2][0]= array ('name' => null);
- foreach($element2 as $count=>&$element3)
- {
- if($element3[$groupBy]!=$tmp2[$key1][$key2][$i][$groupBy])
- {
- if($tmp2[$key1][$key2][$i][$groupBy]!=null)
- {
- $i++;
- }
- $tmp2[$key1][$key2][$i]["id"]=$element3["id"];
- $tmp2[$key1][$key2][$i]["name"]=$element3["name"];
- $tmp2[$key1][$key2][$i]["code"]=$element3["code"];
- $tmp2[$key1][$key2][$i]["state"]=$element3["state"];
- $tmp2[$key1][$key2][$i]["parent_id"]=$element3["parent_id"];
- }
- //if($element3["type"]=="normal")
- //{
- $tmp2[$key1][$key2][$i]["nettoNormal"] += $element3["netto"];
- $tmp2[$key1][$key2][$i]["IloscNormal"] += $element3["ilosc"];
- //}
- $tmp2[$key1][$key2][$i]["ilosc"] += $element3["ilosc"];
- $tmp2[$key1][$key2][$i]["netto"] += $element3["netto"];
- $tmp2[$key1][$key2][$i]["koszt"] += $element3["koszt"];
- }
- $tmp2[$key1]["IloscSum"] = $categoryArray[$key1]["IloscSum"];
- $tmp2[$key1]["SoldSum"] = $categoryArray[$key1]["SoldSum"];
- $tmp2[$key1]["SoldSumNormal"] = $categoryArray[$key1]["SoldSumNormal"];
- $tmp2[$key1]["IloscNormal"] = $categoryArray[$key1]["IloscNormal"];
- $tmp2[$key1]["KosztSum"] = $categoryArray[$key1]["KosztSum"];
-
-
- $sumSub2["MarzaSum"][$key1][$key2] = ($tmp2[$key1][$key2]["SoldSumNormal2"]-$tmp2[$key1][$key2]["KosztSum2"])/$tmp2[$key1][$key2]["SoldSumNormal2"]*100;
- $sumSub2["SredniaSum"][$key1][$key2] = $tmp2[$key1][$key2]["SoldSumNormal2"]/$tmp2[$key1][$key2]["IloscNormal2"];
- if($key2=="Reszta")
- {
- if(is_array($sumSub2["SredniaSum"][$key1][$key2]) || $sumSub2["SredniaSum"][$key1][$key2]=='')
- {
- $sumSub2["SredniaSum"][$key1][$key2]=0;
- }
- }
- $count1 ++;
-
- $tmp2[$key1][$key2]["SredniaSum2"] = $sumSub2["SredniaSum"][$key1][$key2];
- $tmp2[$key1][$key2]["MarzaSum2"] = $sumSub2["MarzaSum"][$key1][$key2];
- }
- $sumSub["MarzaSum"][$key1] = ($tmp2[$key1]["SoldSumNormal"]-$tmp2[$key1]["KosztSum"])/$tmp2[$key1]["SoldSumNormal"]*100;
- $sumSub["SredniaSum"][$key1] = $tmp2[$key1]["SoldSumNormal"]/$tmp2[$key1]["IloscNormal"];
-
- $tmp2[$key1]["SredniaSum"] = $sumSub["SredniaSum"][$key1];
- $tmp2[$key1]["MarzaSum"] = $sumSub["MarzaSum"][$key1];
- $categoryArray1=$tmp2;
- }
+ function cmp2($a, $b)
+ {
+ if ($a['id'] == $b['id']) {
+ return 0;
+ }
+ return ($a['id'] < $b['id']) ? -1 : 1;
+ }
- ////////////////// SORT sumSub /////////////////////////////////
- foreach( $categoryArray1 as $key1=>&$element )
- {
- foreach( $element as $key2=>&$elements )
- {
- foreach( $element as $key3=>&$element2 )
- {
- if($sumSub2["SoldSum"][$key1][$key2]>$sumSub2["SoldSum"][$key1][$key3])
- {
- $tmp=$sumSub2["SoldSum"][$key1][$key2];
- $sumSub2["SoldSum"][$key1][$key2]=$sumSub2["SoldSum"][$key1][$key3];
- $sumSub2["SoldSum"][$key1][$key3]=$tmp;
- }
+ // grupowanie po kontrahentach
+ foreach ($categoryArray as $key1 => &$element1) {
+ foreach ($element1 as $key2 => &$element2) {
+ $tmp2[$key1][$key2]["IloscSum2"] = $categoryArray[$key1][$key2]["IloscSum2"];
+ $tmp2[$key1][$key2]["SoldSum2"] = $categoryArray[$key1][$key2]["SoldSum2"];
+ $tmp2[$key1][$key2]["SoldSumNormal2"] = $categoryArray[$key1][$key2]["SoldSumNormal2"];
+ $tmp2[$key1][$key2]["IloscNormal2"] = $categoryArray[$key1][$key2]["IloscNormal2"];
+ $tmp2[$key1][$key2]["KosztSum2"] = $categoryArray[$key1][$key2]["KosztSum2"];
+
+ if ($searchBy == "contractor") {
+ usort($element2, "cmp");
+ } else {
+ usort($element2, "cmp2");
+ }
+ $i = 0;
+ $tmp2[$key1][$key2][0] = array('name' => null);
+ foreach ($element2 as $count => &$element3) {
+ if ($element3[$groupBy] != $tmp2[$key1][$key2][$i][$groupBy]) {
+ if ($tmp2[$key1][$key2][$i][$groupBy] != null) {
+ $i++;
}
+ $tmp2[$key1][$key2][$i]["id"] = $element3["id"];
+ $tmp2[$key1][$key2][$i]["name"] = $element3["name"];
+ $tmp2[$key1][$key2][$i]["code"] = $element3["code"];
+ $tmp2[$key1][$key2][$i]["state"] = $element3["state"];
+ $tmp2[$key1][$key2][$i]["ordered_quantity"] = $element3["ordered_quantity"];
+ $tmp2[$key1][$key2][$i]["parent_id"] = $element3["parent_id"];
+ }
+ //if($element3["type"]=="normal")
+ //{
+ $tmp2[$key1][$key2][$i]["nettoNormal"] += $element3["netto"];
+ $tmp2[$key1][$key2][$i]["IloscNormal"] += $element3["ilosc"];
+ //}
+ $tmp2[$key1][$key2][$i]["ilosc"] += $element3["ilosc"];
+ $tmp2[$key1][$key2][$i]["netto"] += $element3["netto"];
+ $tmp2[$key1][$key2][$i]["koszt"] += $element3["koszt"];
+ }
+ $tmp2[$key1]["IloscSum"] = $categoryArray[$key1]["IloscSum"];
+ $tmp2[$key1]["SoldSum"] = $categoryArray[$key1]["SoldSum"];
+ $tmp2[$key1]["SoldSumNormal"] = $categoryArray[$key1]["SoldSumNormal"];
+ $tmp2[$key1]["IloscNormal"] = $categoryArray[$key1]["IloscNormal"];
+ $tmp2[$key1]["KosztSum"] = $categoryArray[$key1]["KosztSum"];
+
+
+ $sumSub2["MarzaSum"][$key1][$key2] = ($tmp2[$key1][$key2]["SoldSumNormal2"] - $tmp2[$key1][$key2]["KosztSum2"]) / $tmp2[$key1][$key2]["SoldSumNormal2"] * 100;
+ $sumSub2["SredniaSum"][$key1][$key2] = $tmp2[$key1][$key2]["SoldSumNormal2"] / $tmp2[$key1][$key2]["IloscNormal2"];
+ if ($key2 == "Reszta") {
+ if (is_array($sumSub2["SredniaSum"][$key1][$key2]) || $sumSub2["SredniaSum"][$key1][$key2] == '') {
+ $sumSub2["SredniaSum"][$key1][$key2] = 0;
}
}
-
- foreach( $sumSub["SoldSum"] as $key1=>&$element )
- {
- foreach( $sumSub["SoldSum"] as $key2=>&$element2 )
- {
- if($sumSub["SoldSum"][$key1]>$sumSub["SoldSum"][$key2])
- {
- $tmp=$sumSub["SoldSum"][$key1];
- $sumSub["SoldSum"][$key1]=$sumSub["SoldSum"][$key2];
- $sumSub["SoldSum"][$key2]=$tmp;
- }
+ $count1++;
+
+ $tmp2[$key1][$key2]["SredniaSum2"] = $sumSub2["SredniaSum"][$key1][$key2];
+ $tmp2[$key1][$key2]["MarzaSum2"] = $sumSub2["MarzaSum"][$key1][$key2];
+ }
+ $sumSub["MarzaSum"][$key1] = ($tmp2[$key1]["SoldSumNormal"] - $tmp2[$key1]["KosztSum"]) / $tmp2[$key1]["SoldSumNormal"] * 100;
+ $sumSub["SredniaSum"][$key1] = $tmp2[$key1]["SoldSumNormal"] / $tmp2[$key1]["IloscNormal"];
+
+ $tmp2[$key1]["SredniaSum"] = $sumSub["SredniaSum"][$key1];
+ $tmp2[$key1]["MarzaSum"] = $sumSub["MarzaSum"][$key1];
+ $categoryArray1 = $tmp2;
+ }
+
+ ////////////////// SORT sumSub /////////////////////////////////
+ foreach ($categoryArray1 as $key1 => &$element) {
+ foreach ($element as $key2 => &$elements) {
+ foreach ($element as $key3 => &$element2) {
+ if ($sumSub2["SoldSum"][$key1][$key2] > $sumSub2["SoldSum"][$key1][$key3]) {
+ $tmp = $sumSub2["SoldSum"][$key1][$key2];
+ $sumSub2["SoldSum"][$key1][$key2] = $sumSub2["SoldSum"][$key1][$key3];
+ $sumSub2["SoldSum"][$key1][$key3] = $tmp;
}
}
- ////////////////// SORT array /////////////////////////////////
- $newArray2;
- foreach( $sumSub["SoldSum"] as $key1=>&$element1 )
- {
- foreach( $categoryArray1 as $key2=>&$element2 )
- {
- if($sumSub["SoldSum"][$key1]==$categoryArray1[$key2]["SoldSum"])
- {
- $newArray2[$key2]=$categoryArray1[$key2];
- }
- }
- }
- $newArray1;
- foreach( $newArray2 as $key1=>&$element1 )
- {
- foreach( $element1 as $key2=>&$element2 )
- {
- foreach( $element1 as $key3=>&$element3 )
- {
- if($sumSub2["SoldSum"][$key1][$key2]==$newArray2[$key1][$key3]["SoldSum2"])
- {
- $newArray1[$key1][$key3]=$newArray2[$key1][$key3];
- }
- }
- }
- }
-
- //wyliczanie dokładne marży i średniej dla produktów
- foreach( $newArray1 as $key1=>&$element1 )
- {
- foreach( $element1 as $key2=>&$element2 )
- {
- foreach( $element2 as $key3=>&$element3 )
- {
- $newArray1[$key1][$key2][$key3]["marza"] = ($newArray1[$key1][$key2][$key3]["nettoNormal"]-$newArray1[$key1][$key2][$key3]["koszt"])/$newArray1[$key1][$key2][$key3]["nettoNormal"]*100;
- $newArray1[$key1][$key2][$key3]["srednia"] = $newArray1[$key1][$key2][$key3]["nettoNormal"]/$newArray1[$key1][$key2][$key3]["IloscNormal"];
-
- }
- }
-
- }
}
-?>
\ No newline at end of file
+ }
+
+ foreach ($sumSub["SoldSum"] as $key1 => &$element) {
+ foreach ($sumSub["SoldSum"] as $key2 => &$element2) {
+ if ($sumSub["SoldSum"][$key1] > $sumSub["SoldSum"][$key2]) {
+ $tmp = $sumSub["SoldSum"][$key1];
+ $sumSub["SoldSum"][$key1] = $sumSub["SoldSum"][$key2];
+ $sumSub["SoldSum"][$key2] = $tmp;
+ }
+ }
+ }
+ ////////////////// SORT array /////////////////////////////////
+ $newArray2;
+ foreach ($sumSub["SoldSum"] as $key1 => &$element1) {
+ foreach ($categoryArray1 as $key2 => &$element2) {
+ if ($sumSub["SoldSum"][$key1] == $categoryArray1[$key2]["SoldSum"]) {
+ $newArray2[$key2] = $categoryArray1[$key2];
+ }
+ }
+ }
+ $newArray1;
+ foreach ($newArray2 as $key1 => &$element1) {
+ foreach ($element1 as $key2 => &$element2) {
+ foreach ($element1 as $key3 => &$element3) {
+ if ($sumSub2["SoldSum"][$key1][$key2] == $newArray2[$key1][$key3]["SoldSum2"]) {
+ $newArray1[$key1][$key3] = $newArray2[$key1][$key3];
+ }
+ }
+ }
+ }
+
+ //wyliczanie dokładne marży i średniej dla produktów
+ foreach ($newArray1 as $key1 => &$element1) {
+ foreach ($element1 as $key2 => &$element2) {
+ foreach ($element2 as $key3 => &$element3) {
+ $newArray1[$key1][$key2][$key3]["marza"] = ($newArray1[$key1][$key2][$key3]["nettoNormal"] - $newArray1[$key1][$key2][$key3]["koszt"]) / $newArray1[$key1][$key2][$key3]["nettoNormal"] * 100;
+ $newArray1[$key1][$key2][$key3]["srednia"] = $newArray1[$key1][$key2][$key3]["nettoNormal"] / $newArray1[$key1][$key2][$key3]["IloscNormal"];
+ }
+ }
+ }
+}
diff --git a/modules/EcmReports/tpls/ReportSales.tpl b/modules/EcmReports/tpls/ReportSales.tpl
index ed84e431..91a473b5 100644
--- a/modules/EcmReports/tpls/ReportSales.tpl
+++ b/modules/EcmReports/tpls/ReportSales.tpl
@@ -247,7 +247,8 @@
{if $searchBy=="product"}
-
+
+
{/if}
@@ -271,6 +272,7 @@
{if $searchBy=="product"}
+
{/if}
{$DATA.$CATNAME.IloscSum|number_format:0:",":"." }
{$DATA.$CATNAME.SoldSum|number_format:2:",":"." }
@@ -292,6 +294,7 @@
{if $searchBy=="product"}
+
{/if}
{$CAT.$CAT2NAME.IloscSum2|number_format:0:",":"." }
{$CAT.$CAT2NAME.SoldSum2|number_format:2:",":"." }
@@ -330,6 +333,7 @@
{if $searchBy=="product"}
{$ROW.code}
{$ROW.state}
+ {$ROW.ordered_quantity}
{/if}
{$ROW.ilosc|number_format:0:",":"."}
{$ROW.netto|number_format:2:",":"."}
@@ -352,6 +356,7 @@
{if $searchBy=="product"}
+
{/if}
{$SUM.IloscSumSum|number_format:0:",":"." }
{$SUM.SoldSumSum|number_format:2:",":"." }
diff --git a/modules/EcmStockStates/EcmStockState.php b/modules/EcmStockStates/EcmStockState.php
index a6e4ee35..939dc380 100755
--- a/modules/EcmStockStates/EcmStockState.php
+++ b/modules/EcmStockStates/EcmStockState.php
@@ -214,9 +214,9 @@ class EcmStockState extends SugarBean {
$GLOBALS['db']->query(
"UPDATE ecmproducts as p
INNER JOIN (
- SELECT round(sum(quantity*price)/sum(quantity),2) as avg_price, product_id FROM ecmstockstates GROUP BY product_id
+ SELECT round(sum(quantity*price)/sum(quantity),2) as avg_price, product_id, SUM(quantity) as stock_state FROM ecmstockstates GROUP BY product_id
) s ON p.id=s.product_id
- SET p.ems_price = s.avg_price
+ SET p.ems_price = s.avg_price, p.ems_qty_in_stock = s.stock_state
WHERE p.id='$product_id'"
);
}