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} {if $searchBy=="product"} - + + {/if} @@ -271,6 +272,7 @@ {if $searchBy=="product"} + {/if} @@ -292,6 +294,7 @@ {if $searchBy=="product"} + {/if} @@ -330,6 +333,7 @@ {if $searchBy=="product"} + {/if} @@ -352,6 +356,7 @@ {if $searchBy=="product"} + {/if} 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'" ); }
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 @@
{$MOD.LBL_PRODUCTS}IndeksStanStanZamówiona ilość{$MOD.LBL_SOLD_AMOUNT} {$MOD.LBL_VALUE_SALES} {$DATA.$CATNAME.IloscSum|number_format:0:",":"." } {$DATA.$CATNAME.SoldSum|number_format:2:",":"." } {$CAT.$CAT2NAME.IloscSum2|number_format:0:",":"." } {$CAT.$CAT2NAME.SoldSum2|number_format:2:",":"." }{$ROW.code} {$ROW.state}{$ROW.ordered_quantity}{$ROW.ilosc|number_format:0:",":"."} {$ROW.netto|number_format:2:",":"."} {$SUM.IloscSumSum|number_format:0:",":"." } {$SUM.SoldSumSum|number_format:2:",":"." }