File: /home/mostafedeg/public_html/erp/controllers/profitproductcatController.php
<?php
/* * *************** EDITED at 1/12/2013 --- Yasmeen ************* */
//the global file operation
include("../public/impOpreation.php");
include("reportfunctions.php");
//global varable
global $showoutside;
//to check if the page from .htacess
//$showoutside = $_GET['sn'];
// get the config file
include_once("../public/config.php");
//here the db files that include in the file
include("../public/include_dao.php");
//Sellbill
require_once('../models/dao/SellbillDAO.class.php');
require_once('../models/dto/Sellbill.class.php');
require_once('../models/mysql/SellbillMySqlDAO.class.php');
require_once('../models/mysql/ext/SellbillMySqlExtDAO.class.php');
//Returnsellbill
require_once('../models/dao/ReturnsellbillDAO.class.php');
require_once('../models/dto/Returnsellbill.class.php');
require_once('../models/mysql/ReturnsellbillMySqlDAO.class.php');
require_once('../models/mysql/ext/ReturnsellbillMySqlExtDAO.class.php');
//Sellbillandrutern
require_once('../models/dao/SellbillandruternDAO.class.php');
require_once('../models/dto/Sellbillandrutern.class.php');
require_once('../models/mysql/SellbillandruternMySqlDAO.class.php');
require_once('../models/mysql/ext/SellbillandruternMySqlExtDAO.class.php');
//Sellbilldetail
require_once('../models/dao/SellbilldetailDAO.class.php');
require_once('../models/dto/Sellbilldetail.class.php');
require_once('../models/mysql/SellbilldetailMySqlDAO.class.php');
require_once('../models/mysql/ext/SellbilldetailMySqlExtDAO.class.php');
//Returnsellbilldetail
require_once('../models/dao/ReturnsellbilldetailDAO.class.php');
require_once('../models/dto/Returnsellbilldetail.class.php');
require_once('../models/mysql/ReturnsellbilldetailMySqlDAO.class.php');
require_once('../models/mysql/ext/ReturnsellbilldetailMySqlExtDAO.class.php');
//Sellandruternbilldetail
require_once('../models/dao/SellandruternbilldetailDAO.class.php');
require_once('../models/dto/Sellandruternbilldetail.class.php');
require_once('../models/mysql/SellandruternbilldetailMySqlDAO.class.php');
require_once('../models/mysql/ext/SellandruternbilldetailMySqlExtDAO.class.php');
//Product
require_once('../models/dao/ProductDAO.class.php');
require_once('../models/dto/Product.class.php');
require_once('../models/mysql/ProductMySqlDAO.class.php');
require_once('../models/mysql/ext/ProductMySqlExtDAO.class.php');
//Productunit
require_once('../models/dao/ProductunitDAO.class.php');
require_once('../models/dto/Productunit.class.php');
require_once('../models/mysql/ProductunitMySqlDAO.class.php');
require_once('../models/mysql/ext/ProductunitMySqlExtDAO.class.php');
//Buybill
require_once('../models/dao/BuybillDAO.class.php');
require_once('../models/dto/Buybill.class.php');
require_once('../models/mysql/BuybillMySqlDAO.class.php');
require_once('../models/mysql/ext/BuybillMySqlExtDAO.class.php');
//Buybilldetail
require_once('../models/dao/BuybilldetailDAO.class.php');
require_once('../models/dto/Buybilldetail.class.php');
require_once('../models/mysql/BuybilldetailMySqlDAO.class.php');
require_once('../models/mysql/ext/BuybilldetailMySqlExtDAO.class.php');
//Buyandruternbill
require_once('../models/dao/BuyandruternbillDAO.class.php');
require_once('../models/dto/Buyandruternbill.class.php');
require_once('../models/mysql/BuyandruternbillMySqlDAO.class.php');
require_once('../models/mysql/ext/BuyandruternbillMySqlExtDAO.class.php');
//Buyandruternbilldetail
require_once('../models/dao/BuyandruternbilldetailDAO.class.php');
require_once('../models/dto/Buyandruternbilldetail.class.php');
require_once('../models/mysql/BuyandruternbilldetailMySqlDAO.class.php');
require_once('../models/mysql/ext/BuyandruternbilldetailMySqlExtDAO.class.php');
//Returnbuybill
require_once('../models/dao/ReturnbuybillDAO.class.php');
require_once('../models/dto/Returnbuybill.class.php');
require_once('../models/mysql/ReturnbuybillMySqlDAO.class.php');
require_once('../models/mysql/ext/ReturnbuybillMySqlExtDAO.class.php');
//Returnbuybilldetail
require_once('../models/dao/ReturnbuybilldetailDAO.class.php');
require_once('../models/dto/Returnbuybilldetail.class.php');
require_once('../models/mysql/ReturnbuybilldetailMySqlDAO.class.php');
require_once('../models/mysql/ext/ReturnbuybilldetailMySqlExtDAO.class.php');
//Productcat
require_once('../models/dao/ProductcatDAO.class.php');
require_once('../models/dto/Productcat.class.php');
require_once('../models/mysql/ProductcatMySqlDAO.class.php');
require_once('../models/mysql/ext/ProductcatMySqlExtDAO.class.php');
//Programsetting
require_once('../models/dao/ProgramsettingsDAO.class.php');
require_once('../models/dto/Programsetting.class.php');
require_once('../models/mysql/ProgramsettingsMySqlDAO.class.php');
require_once('../models/mysql/ext/ProgramsettingsMySqlExtDAO.class.php');
require_once('../models/dao/YoutubeLinkDAO.class.php');
require_once('../models/dto/YoutubeLink.class.php');
require_once('../models/mysql/YoutubeLinkMySqlDAO.class.php');
require_once('../models/mysql/ext/YoutubeLinkMySqlExtDAO.class.php');
//Breadcrumb
require_once("../library/breadcrumb.php");
//get the do the action
$do = $_GET['do'];
$langs = $_SESSION['erp_lang'];
include_once("../views/languages/$langs/success.php");
include_once("../views/languages/$langs/error.php");
/* ======================
Controller Name :- profitreportCTRL تقرير يومية الخزينة
OPERTATION in Controller
1-load save data
2-display show form
3-display details form for save
4-display details for operation in savedaily
======================== */
//here the global templates
$smarty->display("header.html");
//here goes the instances and general variables
//Sellbill
$mySellbillEx = new SellbillMySqlExtDAO();
$mySellbillRecord = new SellbillMySqlDAO();
//Returnsellbill
$myReturnsellbillEx = new ReturnsellbillMySqlExtDAO();
$myReturnsellbillRecord = new ReturnsellbillMySqlDAO();
//Sellbillandrutern
$mySellbillandruternRecord = new SellbillandruternMySqlDAO();
$mySellbillandruternEx = new SellbillandruternMySqlExtDAO();
//Sellbilldetail
$mySellbilldetailEx = new SellbilldetailMySqlExtDAO();
//Returnsellbilldetail
$myReturnsellbilldetailEx = new ReturnsellbilldetailMySqlExtDAO();
//Sellandruternbilldetail
$mySellandruternbilldetailEx = new SellandruternbilldetailMySqlExtDAO();
//Product
$myProductRecord = new ProductMySqlDAO();
$myProductEx = new ProductMySqlExtDAO();
//Productunit
$myProductunitEx = new ProductunitMySqlExtDAO();
$myProductunitRecord = new ProductunitMySqlDAO();
//Buybill
$myBuybillRecord = new BuybillMySqlDAO();
//Buybilldetail
$myBuybilldetailEx = new BuybilldetailMySqlExtDAO();
//Buyandruternbill
$myBuyandruternbillRecord = new BuyandruternbillMySqlDAO();
//Buyandruternbilldetail
$myBuyandruternbilldetailEx = new BuyandruternbilldetailMySqlExtDAO();
//Returnbuybill
$myReturnbuybillRecord = new ReturnbuybillMySqlDAO();
//Returnbuybilldetail
$myReturnbuybilldetailEx = new ReturnbuybilldetailMySqlExtDAO();
//Productcat
$myProductcatRecord = new ProductcatMySqlDAO();
$myProductcatEx = new ProductcatMySqlExtDAO();
//billsproducts
$billsProducts = new Billsproduct();
$billsProductsDAO = new BillsproductsMySqlDAO();
$billsProductsEX = new BillsproductsMySqlExtDAO();
//billsproducts
$billsReturnProducts = new Billsreturnproduct();
$billsReturnProductsDAO = new BillsreturnproductsMySqlDAO();
$billsReturnProductsEX = new BillsreturnproductsMySqlExtDAO();
$youtubeLink = new YoutubeLink();
$youtubeLinkDAO = new YoutubeLinkMySqlDAO();
$youtubeLinkEX = new YoutubeLinkMySqlExtDAO();
//Programsetting
$ProgramsettingDAO = new ProgramsettingsMySqlDAO();
//check and use the condetion that suite this action
$lastLevelCatIDS = array();
$catsIDS = "";
if ($do == "show" || empty($do)) {
//here the permssion check
include_once("../public/authentication.php");
$youtubes = $youtubeLinkDAO->queryAll();
$smarty->assign("youtubes", $youtubes);
$Programsetting = $ProgramsettingDAO->load(1);
$smarty->assign('programsettingsdata', $Programsetting);
##التصنيفات
$catDataReport = getCategoryChilds();
$smarty->assign("catDataReport", $catDataReport[1]);
$level = filter_input(INPUT_POST, 'level');
$productCatId = filter_input(INPUT_POST, 'productCatId' . $level);
if (empty($productCatId) || $productCatId == -1) {
$productCatId = filter_input(INPUT_POST, 'productCatId' . ($level - 1));
}
$catsIDS = '' . $productCatId;
if ($productCatId != '') {
getAllSubCat($productCatId, 1); //mode = 1 get all sub cats
}
$startDate = $_REQUEST['from'];
$endDate = $_REQUEST['to'];
$dis = filter_input(INPUT_GET, 'dis'); // if dis = T means discount = true
$smarty->assign('dis', $dis);
if (isset($startDate) && isset($endDate) && $startDate != "" && $endDate != "" && isset($productCatId) && $productCatId != "-1") {
$productCatSearchData = loadProductCatById($productCatId);
$smarty->assign('productCatSearchData', $productCatSearchData);
########
$Programsetting = $ProgramsettingDAO->load(1);
$smarty->assign('programsettingsdata', $Programsetting);
if (isset($Programsetting->reportsPlusHours) && !empty($Programsetting->reportsPlusHours)) {
$reportsPlusHours = $Programsetting->reportsPlusHours + 24; //24 to get the end of the day and add search hours to it
$endDate = date('Y-m-d H:i:s', strtotime('+' . $reportsPlusHours . ' hour +0 minutes', strtotime($endDate)));
$startDate = date('Y-m-d H:i:s', strtotime('+' . $Programsetting->reportsPlusHours . ' hour +0 minutes', strtotime($startDate)));
} else {
$endDate = $endDate . ' 23:59:59';
$startDate = $startDate . " 00:00:00";
}
#############
getProductInBillByDateAndCatId($startDate, $endDate, $catsIDS);
$message = "تقرير ارباح صنف <h4>" . $productCatSearchData->productCatName . "</h4> التاريخ : من " . $startDate . " إلى " . $endDate;
$smarty->assign("message", $message);
}
//$smarty->assign("salesreport", 1);
//here the smarty templates
if ($dis == 'T') {
$smarty->display("profitproductcatview/showdiscount.html");
} else {
$smarty->display("profitproductcatview/show.html");
}
} elseif ($do == "sucess") {
//here the smarty templates
$smarty->display("succes.html");
} elseif ($do == "error") {
//here the smarty templates
$smarty->display("error.html");
}
//here the global templates
$smarty->display("footer.html");
/* ===============================
function in this CONTROLLER
================================ */
function getProductInBillByDateAndCatId($startDate, $endDate, $productcatId) {
global $mySellbilldetailEx;
global $myProductRecord;
global $myProductEx;
global $smarty;
$productIdData = $mySellbilldetailEx->queryFromAllTableWithDateAndConditionsAndCatId($startDate, $endDate, $productcatId);
$smarty->assign("productIdData", $productIdData);
$totalSellPrice = 0;
$totalQuantityUnit = 0;
$totalDiscountPrice = 0;
$totalReturnSellPrice = 0;
$totalreturnQuantityUnit = 0;
$totalBuybillPrice = 0;
$totalBuyQuantityUnit = 0;
$totalReturnBuybillPrice = 0;
$totalReturnBuyQuantityUnit = 0;
$finalProductcatProfit = 0;
$h = 1;
foreach ($productIdData as $productIdDa) {
$productId = $productIdDa->productid;
$productData = $myProductRecord->load($productId);
$overAllAveragePrice = $productData->overAllAveragePrice;
$smarty->assign("productData", $productData);
$productData = $myProductEx->getName($productId);
$smarty->assign("productData" . $h . '', $productData);
//sellbill
$sellPriceData = getTotalSellPriceByDateAndProductId($startDate, $endDate, $productId, $overAllAveragePrice);
$sellPricePulsData = getTotalAditionalSellPriceByDateAndProductId($startDate, $endDate, $productId, $overAllAveragePrice);
//sellbillOptic
$sellOpticData = getTotalSellOpticByDateAndProductId($startDate, $endDate, $productId);
$sellPrice = $sellPriceData[0] + $sellPricePulsData[0] + $sellOpticData[0];
$quantityUnit = $sellPriceData[1] + $sellPricePulsData[1] + $sellOpticData[1];
$discountPrice = $sellPriceData[3] + $sellPricePulsData[3] + $sellOpticData[3];
$totalSellPrice = $totalSellPrice + $sellPrice;
$totalQuantityUnit = $totalQuantityUnit + $quantityUnit;
$totalDiscountPrice = $totalDiscountPrice + $discountPrice;
//return sellbill
$returnSellPriceData = getTotalReturnSellPriceByDateAndProductId($startDate, $endDate, $productId, $overAllAveragePrice);
$returnSellPricePulsData = getTotalAditionalReturnSellPriceByDateAndProductId($startDate, $endDate, $productId, $overAllAveragePrice);
//return sellbill Optic
$returnSellOpticData = getTotalReturnOpticByDateAndProductId($startDate, $endDate, $productId);
/* print_r("المردودات".$returnSellPriceData[0]);
print_r("<br>سعر الاصلى المردودات".$returnSellPriceData[2]);
//finalbuypric
print_r("<br>");
print_r("المبيعات فى المردودات".$returnSellPricePulsData[0]);
print_r("<br>سعر الاصلى المردودات".$returnSellPricePulsData[2]);
print_r("<br>");
//print_r($sellPricePulsData);
print_r("<br>");
*/
$returnSellPrice = $returnSellPriceData[0] + $returnSellPricePulsData[0] + $returnSellOpticData[0];
$returnQuantityUnit = $returnSellPriceData[1] + $returnSellPricePulsData[1] + $returnSellOpticData[1];
$totalReturnSellPrice = $totalReturnSellPrice + $returnSellPrice;
$totalreturnQuantityUnit = $totalreturnQuantityUnit + $returnQuantityUnit;
//buybill
$buybillPriceData = getTotalBuyPriceByDateAndProductId($startDate, $endDate, $productId);
$buybillPricePulsData = getTotalAditionalBuyPriceByDateAndProductId($startDate, $endDate, $productId);
$buybillPrice = $buybillPriceData[0] + $buybillPricePulsData[0];
$buyQuantityUnit = $buybillPriceData[1] + $buybillPricePulsData[1];
$totalBuybillPrice = $totalBuybillPrice + $buybillPrice;
$totalBuyQuantityUnit = $totalBuyQuantityUnit + $buyQuantityUnit;
//return buybill
$returnBuybillPriceData = getTotalReturnBuyPriceByDateAndProductId($startDate, $endDate, $productId);
$returnBuybillPricePulsData = getTotalAditionalBuyPriceByDateAndProductId($startDate, $endDate, $productId);
$returnBuybillPrice = $returnBuybillPriceData[0] + $returnBuybillPricePulsData[0];
$returnBuyQuantityUnit = $returnBuybillPriceData[1] + $returnBuybillPricePulsData[1];
$totalReturnBuybillPrice = $totalReturnBuybillPrice + $returnBuybillPrice;
$totalReturnBuyQuantityUnit = $totalReturnBuyQuantityUnit + $returnBuyQuantityUnit;
$yy = $sellPrice - $returnSellPrice;
//print_r('<br>quantityUnit'.$quantityUnit);
//print_r('<br>returnQuantityUnit'.$returnQuantityUnit);
$quantityForOneProduct = $quantityUnit - $returnQuantityUnit;
//سعر الوحده
@$xx = ($buybillPrice) / $quantityUnit;
$discountForOneProduct = ($quantityForOneProduct * $xx);
$profitForOneProduct = round((($yy) - ($quantityForOneProduct * $xx)), 2);
/* $smarty->assign("profitForOneProduct", $profitForOneProduct);
$smarty->assign("quantityForOneProduct", $quantityForOneProduct);
*/
$smarty->assign("discountPrice" . $h . '', $discountPrice); // الخصومات لمنتج واحد
$smarty->assign("profitForOneProduct" . $h . '', $profitForOneProduct);
$smarty->assign("quantityForOneProduct" . $h . '', $quantityForOneProduct);
$finalProductcatProfit += $profitForOneProduct;
$h++;
}
/*
$productData=$myProductEx->getName($productId);
$smarty->assign("productData".$h.'', $productData);
//sellbill
$sellPriceData=getTotalSellPriceByDateAndProductId($startDate, $endDate, $productId);
//print_r("المبيعات".$sellPriceData[0]);
//print_r("<br>سعر الاصلى للمبيعات".$sellPriceData[2]);
//finalbuypric
// print_r("<br>");
$sellPricePulsData=getTotalAditionalSellPriceByDateAndProductId($startDate, $endDate,$productId);
//print_r("المبيعات فى الردودات".$sellPricePulsData[0]);
//print_r("<br>سعر الاصلى للمبيعات".$sellPricePulsData[2]);
//print_r("<br>");
//print_r($sellPricePulsData);
//print_r("<br>");
$sellPrice = $sellPriceData[0] + $sellPricePulsData[0];
$quantityUnit = $sellPriceData[1] + $sellPricePulsData[1];
$totalSellPrice += $sellPrice;
$totalQuantityUnit += $quantityUnit;
//return sellbill
$returnSellPriceData=getTotalReturnSellPriceByDateAndProductId($startDate, $endDate, $productId);
//print_r(" المردودات ".$returnSellPriceData[0]);
//print_r("<br>سعر الاصلى المردودات".$returnSellPriceData[2]);
//print_r("<br>");
$returnSellPricePulsData=getTotalAditionalReturnSellPriceByDateAndProductId($startDate, $endDate, $productId);
// print_r(" فى المبيعات المردودات ".$returnSellPricePulsData[0]);
//print_r("<br>سعر الاصلى المردودات".$returnSellPricePulsData[2]);
//print_r("<br>");
$returnSellPrice=$returnSellPriceData[0] + $returnSellPricePulsData[0];
$returnQuantityUnit=$returnSellPriceData[1] + $returnSellPricePulsData[1];
$totalReturnSellPrice += $returnSellPrice;
$totalreturnQuantityUnit += $returnQuantityUnit;
//buybill
$buybillPriceData=getTotalBuyPriceByDateAndProductId($startDate, $endDate, $productId);
$buybillPricePulsData=getTotalAditionalBuyPriceByDateAndProductId($startDate, $endDate, $productId);
$buybillPrice = $buybillPriceData[0] + $buybillPricePulsData[0];
$buyQuantityUnit = $buybillPriceData[1] + $buybillPricePulsData[1];
$totalBuybillPrice += $buybillPrice;
$totalBuyQuantityUnit += $buyQuantityUnit;
//return buybill
$returnBuybillPriceData=getTotalReturnBuyPriceByDateAndProductId($startDate, $endDate, $productId);
$returnBuybillPricePulsData=getTotalAditionalBuyPriceByDateAndProductId($startDate, $endDate, $productId);
$returnBuybillPrice = $returnBuybillPriceData[0] + $returnBuybillPricePulsData[0];
$returnBuyQuantityUnit = $returnBuybillPriceData[1] + $returnBuybillPricePulsData[1];
$totalReturnBuybillPrice += $returnBuybillPrice;
$totalReturnBuyQuantityUnit += $returnBuyQuantityUnit;
$quantityForOneProduct = $quantityUnit - $returnQuantityUnit;
// $profitForOneProduct= ($sellPrice + $returnBuybillPrice) - ($buybillPrice + $returnSellPrice);
$profitForOneProduct=(($sellPriceData[0] +$sellPricePulsData[0]) -($sellPriceData[2]+$sellPricePulsData[2]))-(($returnSellPriceData[0]+$returnSellPricePulsData[0])-($returnSellPriceData[2]+$returnSellPricePulsData[2]));
$smarty->assign("profitForOneProduct".$h.'', $profitForOneProduct);
$smarty->assign("quantityForOneProduct".$h.'', $quantityForOneProduct);
$finalProductcatProfit+=$profitForOneProduct;
$h++;
*/
$finalQuantityUnit = $totalQuantityUnit - $totalreturnQuantityUnit;
$smarty->assign("totalDiscountPrice", $totalDiscountPrice); // مجموع كل الخصومات
$smarty->assign("totalreturnQuantityUnit", $totalreturnQuantityUnit);
$smarty->assign("finalProductcatProfit", $finalProductcatProfit);
$smarty->assign("finalQuantityUnit", $finalQuantityUnit);
}
// show the form by date
function getTotalSellPriceByDateAndProductId($startDate, $endDate, $ProductIdselected, $overAllAveragePrice) {
global $mySellbilldetailEx;
global $myProductunitRecord;
global $mySellbillRecord;
global $myProductRecord;
global $myProductEx;
global $myProductunitEx;
$sellPrice = 0;
$quantityUnit = 0;
$finalbuypric = 0;
$sellbilldetailData = $mySellbilldetailEx->queryWithDateAndConditionsAndProductIdExt($startDate, $endDate, $ProductIdselected);
$buyPriceType = $_POST["buyPriceType"];
foreach ($sellbilldetailData as $sellbilldetail) {
$quantity = $sellbilldetail->sellbilldetailquantity;
$price = $sellbilldetail->sellbilldetailprice;
$totalPrice = $sellbilldetail->sellbilldetailtotalprice;
$discountValue = $sellbilldetail->discountvalue;
$productunitId = $sellbilldetail->productunitid;
$sellbillTotalBill = $sellbilldetail->sellbilltotalbill;
$sellbillDiscount = $sellbilldetail->sellbilldiscount;
$sellbillDiscountType = $sellbilldetail->sellbilldiscounttype;
//$buyprice = $sellbilldetail->buyprice;
switch ($buyPriceType) {
case "first":
$buyprice = (float) $sellbilldetail->buyprice;
break;
case "last":
$buyprice = (float) $sellbilldetail->lastbuyprice;
break;
case "mean":
$buyprice = (float) $sellbilldetail->meanbuyprice;
break;
case "last_discount":
$buyprice = (float) $sellbilldetail->lastbuyprice_withDiscount;
break;
case "mean_discount":
$buyprice = (float) $sellbilldetail->meanbuyprice_withDiscount;
break;
case "generalPrice":
$buyprice = (float) $overAllAveragePrice;
break;
case "tax":
$buyprice = (float) $sellbilldetail->lastbuyprice_withTax;
break;
case "mean_tax":
$buyprice = (float) $sellbilldetail->meanbuyprice_withTax;
break;
}
if ($sellbillDiscountType == 2) {
$sellbillDiscount = ($sellbillDiscount / 100) * $sellbillTotalBill;
}
$totalPriceBeforeDiscount = $price * $quantity; //product price before discount
$productnumber = $myProductunitEx->getProductNumber($productunitId);
$quantityUnit += ($quantity * $productnumber); //الكمية * عدد القطع في وحدة القياس
//first Step قيمة خصم المنتج على الوحدة
//$firstStep = $discountValue;
//second Stepقيمة المنتج من الخصم على المنتج
//$secondStep = $totalPrice / $sellbillTotalBill;
if ($sellbillTotalBill == 0) {
$sellbillTotalBill = 1;
}
//third Step قيمة الخصم للمنتجات
$thirdStep = ($totalPrice / $sellbillTotalBill) * $sellbillDiscount;
//fourth Step قيمة خصم الفاتورة للوحدة
//$fourthStep = $thirdStep;
//$sellPriceForOneProduct= $totalPriceBeforeDiscount - ($firstStep + $fourthStep);
$allbuyprice = $buyprice * $quantity;
$finalbuypric += $allbuyprice;
$totalPriceDiscount = $discountValue + $thirdStep;
$sellPriceForOneProduct = $totalPriceBeforeDiscount - $totalPriceDiscount;
$sellPrice += $sellPriceForOneProduct;
$discountPrice += $totalPriceDiscount;
}
return array($sellPrice, $quantityUnit, $finalbuypric, $discountPrice);
}
// show the form by date
// show the form by date
function getTotalAditionalSellPriceByDateAndProductId($startDate, $endDate, $ProductIdselected, $overAllAveragePrice) {
global $mySellandruternbilldetailEx;
global $mySellbillandruternRecord;
global $myProductunitRecord;
global $myProductRecord;
global $myProductEx;
global $myProductunitEx;
$sellPrice = 0;
$quantityUnit = 0;
$fianlbuyprice = 0;
$sellbillTotalBillnor = 0;
$sellandreturndetailData = $mySellandruternbilldetailEx->queryWithDateAndConditionsTypeAndProductIdExt($startDate, $endDate, 0, $ProductIdselected);
$buyPriceType = $_POST["buyPriceType"];
foreach ($sellandreturndetailData as $sellandreturndetail) {
//print_r($sellandreturndetail);
$quantity = $sellandreturndetail->sellbilldetailquantity;
$price = $sellandreturndetail->sellbilldetailprice;
$totalPrice = $sellandreturndetail->sellbilldetailtotalprice;
$discountValue = $sellandreturndetail->discountvalue;
$productunitId = $sellandreturndetail->productunitid;
$sellbillTotalBill = $sellandreturndetail->sellbillprice;
$sellbillDiscount = $sellandreturndetail->sellbilldiscount; //محتاجة تتغير
$sellbillDiscountType = $sellandreturndetail->sellbilldiscounttype;
//$buyprice = $sellandreturndetail->buyprice;
switch ($buyPriceType) {
case "first":
$buyprice = (float) $sellandreturndetail->buyprice;
break;
case "last":
$buyprice = (float) $sellandreturndetail->lastbuyprice;
break;
case "mean":
$buyprice = (float) $sellandreturndetail->meanbuyprice;
break;
case "last_discount":
$buyprice = (float) $sellandreturndetail->lastbuyprice_withDiscount;
break;
case "mean_discount":
$buyprice = (float) $sellandreturndetail->meanbuyprice_withDiscount;
break;
case "generalPrice":
$buyprice = (float) $overAllAveragePrice;
break;
case "tax":
$buyprice = (float) $sellandreturndetail->lastbuyprice_withTax;
break;
case "mean_tax":
$buyprice = (float) $sellandreturndetail->meanbuyprice_withTax;
break;
}
$returnsellbillprice = $sellandreturndetail->returnsellbillprice;
if ($sellbillDiscountType == 2) {
//$sellbillDiscount = ($sellbillDiscount / 100) * $sellbillTotalBill;
}
$sellbillTotalBillnor = $sellbillTotalBillnor + $totalPrice;
//
// //load Product Data
// $productData=$myProductRecord->load($productId);
//
// $productSellPrice;
// //تجزئة
// if($priceType == 1)
// {
// $productSellPrice=$productData->productSellUnitPrice;
// }
// //جملة
// elseif($priceType == 0)
// {
// $productSellPrice=$productData->productSellAllPrice;
// }
// //نصف جملة
// elseif($priceType == 2)
// {
// $productSellPrice=$productData->productSellHalfPrice;
// }
//
$totalPriceBeforeDiscount = $price * $quantity;
$productnumber = $myProductunitEx->getProductNumber($productunitId);
$quantityUnit += ($quantity * $productnumber);
if ($sellbillTotalBill == 0) {
$sellbillTotalBill = 1;
}
//third Step قيمة الخصم للمنتجات
$thirdStep = ($totalPrice / $sellbillTotalBill) * $sellbillDiscount;
$allbuyprice = $quantity * $buyprice;
$fianlbuyprice += $allbuyprice;
$totalPriceDiscount = $discountValue + $thirdStep;
$sellPriceForOneProduct = $totalPriceBeforeDiscount - $totalPriceDiscount;
$sellPrice += $sellPriceForOneProduct;
}
$sellbillTotalBillnor = $sellbillTotalBillnor - $returnsellbillprice;
/* print_r('<br>sellbillTotalBillnor'.$sellbillTotalBillnor);
print_r('<br>returnsellbillprice'.$returnsellbillprice);
print_r('<br>sellbillDiscount'.$sellbillDiscount); */
if ($sellbillDiscountType == 2) {
$sellbillDiscountxx = ($sellbillDiscount / 100) * $sellbillTotalBillnor;
//print_r('<br>sellbillDiscountxx'.$sellbillDiscountxx);
} else {
$sellbillDiscountxx = ($sellbillDiscount);
}
$sellPrice = $sellPrice - $sellbillDiscountxx;
$thirdStep = @($totalPrice / $sellbillTotalBill) * $sellbillDiscount;
return array($sellPrice, $quantityUnit, $fianlbuyprice, $totalPriceDiscount);
}
function getTotalReturnSellPriceByDateAndProductId($startDate, $endDate, $ProductIdselected, $overAllAveragePrice) {
global $myReturnsellbilldetailEx;
global $myReturnsellbillRecord;
global $myProductunitRecord;
global $myProductRecord;
global $myProductEx;
global $myProductunitEx;
$ReturnSellPrice = 0;
$quantityUnit = 0;
$finalbuyprice = 0;
$returnsellbilldetailData = $myReturnsellbilldetailEx->queryWithDateAndConditionsAndProductIdExt($startDate, $endDate, $ProductIdselected);
$buyPriceType = $_POST["buyPriceType"];
foreach ($returnsellbilldetailData as $returnsellbilldetail) {
$quantity = $returnsellbilldetail->returnsellbilldetailquantity;
$price = $returnsellbilldetail->returnsellbilldetailprice;
$totalPrice = $returnsellbilldetail->returnsellbilldetailtotalprice;
$discountValue = $returnsellbilldetail->discountvalue;
$productunitId = $returnsellbilldetail->productunitid;
$sellbillTotalBill = $returnsellbilldetail->returnsellbilltotalbill;
$sellbillDiscount = $returnsellbilldetail->returnsellbilldiscount;
$sellbillDiscountType = $returnsellbilldetail->returnsellbilldiscounttype;
//$buyprice = $returnsellbilldetail->buyprice;
switch ($buyPriceType) {
case "first":
$buyprice = (float) $returnsellbilldetail->buyprice;
break;
case "last":
$buyprice = (float) $returnsellbilldetail->lastbuyprice;
break;
case "mean":
$buyprice = (float) $returnsellbilldetail->meanbuyprice;
break;
case "last_discount":
$buyprice = (float) $returnsellbilldetail->lastbuyprice_withDiscount;
break;
case "mean_discount":
$buyprice = (float) $returnsellbilldetail->meanbuyprice_withDiscount;
break;
case "tax":
$buyprice = (float) $returnsellbilldetail->lastbuyprice_withTax;
break;
case "mean_tax":
$buyprice = (float) $returnsellbilldetail->meanbuyprice_withTax;
break;
case "generalPrice":
$buyprice = (float) $overAllAveragePrice;
break;
}
if ($sellbillDiscountType == 2) {
$sellbillDiscount = ($sellbillDiscount / 100) * $sellbillTotalBill;
}
$totalPriceBeforeDiscount = $price * $quantity;
$productnumber = $myProductunitEx->getProductNumber($productunitId);
$quantityUnit += ($quantity * $productnumber);
if ($sellbillTotalBill == 0) {
$sellbillTotalBill = 1;
}
//third Step قيمة الخصم للمنتجات
$thirdStep = ($totalPrice / $sellbillTotalBill) * $sellbillDiscount;
$allbuyprice = $quantity * $buyprice;
//print_r("<br>buyprice".$buyprice);
//print_r("<br>quantity".$quantity);
$finalbuyprice += $allbuyprice;
$ReturnSellPriceForOneProduct = $totalPriceBeforeDiscount - ($discountValue + $thirdStep);
$ReturnSellPrice += $ReturnSellPriceForOneProduct;
}
//print($ReturnSellPrice."ReturnSellPrice<br>");
return array($ReturnSellPrice, $quantityUnit, $finalbuyprice);
}
// show the form by date
function getTotalAditionalReturnSellPriceByDateAndProductId($startDate, $endDate, $ProductIdselected, $overAllAveragePrice) {
global $mySellandruternbilldetailEx;
global $mySellbillandruternRecord;
global $myProductunitRecord;
global $myProductRecord;
global $myProductunitEx;
$ReturnSellPrice = 0;
$quantityUnit = 0;
$finalbuyprice = 0;
$sellandreturndetailData = $mySellandruternbilldetailEx->queryWithDateAndConditionsTypeAndProductIdExt($startDate, $endDate, 1, $ProductIdselected);
//print_r($sellandreturndetailData);
$buyPriceType = $_POST["buyPriceType"];
foreach ($sellandreturndetailData as $sellandreturndetail) {
$quantity = $sellandreturndetail->sellbilldetailquantity;
$price = $sellandreturndetail->sellbilldetailprice;
$totalPrice = $sellandreturndetail->sellbilldetailtotalprice;
$discountValue = $sellandreturndetail->discountvalue;
$productunitId = $sellandreturndetail->productunitid;
//$sellbillTotalBill=$sellbillData->sellbillprice;
$sellbillDiscount = $sellandreturndetail->sellbilldiscount; //محتاجة تتغير
$totalPrice = $sellandreturndetail->sellbilldetailtotalprice;
$discountvalue = $sellandreturndetail->discountvalue;
//$buyprice = $sellandreturndetail->buyprice;
switch ($buyPriceType) {
case "first":
$buyprice = (float) $sellandreturndetail->buyprice;
break;
case "last":
$buyprice = (float) $sellandreturndetail->lastbuyprice;
break;
case "mean":
$buyprice = (float) $sellandreturndetail->meanbuyprice;
break;
case "last_discount":
$buyprice = (float) $sellandreturndetail->lastbuyprice_withDiscount;
break;
case "mean_discount":
$buyprice = (float) $sellandreturndetail->meanbuyprice_withDiscount;
break;
case "generalPrice":
$buyprice = (float) $overAllAveragePrice;
break;
case "tax":
$buyprice = (float) $sellandreturndetail->lastbuyprice_withTax;
break;
case "mean_tax":
$buyprice = (float) $sellandreturndetail->meanbuyprice_withTax;
break;
}
//print_r("<br>sellbillDiscount".$sellbillDiscount."<br>");
//print_r("<br>price".$price."<br>");
//print_r("<br>discountvalue".$discountvalue."<br>");
//خصم نسبه
/* if($sellbillDiscountType == 2)
{
$sellbillDiscount = ($sellbillDiscount / 100) * $sellbillTotalBill;
}
*/
$totalPriceBeforeDiscount = $price * $quantity;
$productnumber = $myProductunitEx->getProductNumber($productunitId);
$quantityUnit += ($quantity * $productnumber);
if ($sellbillTotalBill == 0) {
$sellbillTotalBill = 1;
}
//third Step قيمة الخصم للمنتجات
$allbuyprice = $quantity * $buyprice;
$finalbuyprice += $allbuyprice;
$thirdStep = ($totalPrice / $sellbillTotalBill);
//print_r("<br>totalPriceBeforeDiscount".$totalPriceBeforeDiscount."<br>");
$ReturnSellPriceForOneProduct = $totalPriceBeforeDiscount - ($discountValue * $quantity);
//$ReturnSellPriceForOneProduct = $totalPriceBeforeDiscount - ($discountValue + $thirdStep);
//print_r("--------------<br>ReturnSellPriceForOneProduct".$ReturnSellPriceForOneProduct."<br>-------");
$ReturnSellPrice += $ReturnSellPriceForOneProduct;
}
//print_r("<br>".$ReturnSellPrice."<br>");
return array($ReturnSellPrice, $quantityUnit, $finalbuyprice);
}
function getTotalBuyPriceByDateAndProductId($startDate, $endDate, $ProductIdselected, $overAllAveragePrice) {
global $mySellbilldetailEx;
global $myProductunitRecord;
global $mySellbillRecord;
global $myProductRecord;
global $myProductunitEx;
$sellPrice = 0;
$quantityUnit = 0;
$sellbilldetailData = $mySellbilldetailEx->queryWithDateAndConditionsAndProductIdExt($startDate, $endDate, $ProductIdselected);
$buyPriceType = $_POST["buyPriceType"];
foreach ($sellbilldetailData as $sellbilldetail) {
$quantity = $sellbilldetail->sellbilldetailquantity;
$price = $sellbilldetail->sellbilldetailprice;
$totalPrice = $sellbilldetail->sellbilldetailtotalprice;
$discountValue = $sellbilldetail->discountvalue;
$productunitId = $sellbilldetail->productunitid;
//$buyPrice = $sellbilldetail->buyprice;
switch ($buyPriceType) {
case "first":
$buyPrice = (float) $sellbilldetail->buyprice;
break;
case "last":
$buyPrice = (float) $sellbilldetail->lastbuyprice;
break;
case "mean":
$buyPrice = (float) $sellbilldetail->meanbuyprice;
break;
case "last_discount":
$buyPrice = (float) $sellbilldetail->lastbuyprice_withDiscount;
break;
case "mean_discount":
$buyPrice = (float) $sellbilldetail->meanbuyprice_withDiscount;
break;
case "generalPrice":
$buyPrice = (float) $overAllAveragePrice;
break;
case "tax":
$buyprice = (float) $sellbilldetail->lastbuyprice_withTax;
break;
case "mean_tax":
$buyprice = (float) $sellbilldetail->meanbuyprice_withTax;
break;
}
$buyDiscount = $sellbilldetail->buydiscount;
$buyDiscountType = $sellbilldetail->buydiscounttype;
$productnumber = $myProductunitEx->getProductNumber($productunitId);
$productBuyPrice = $buyPrice;
if ($buyDiscount > 0 && $buyDiscountType == 0) {
$productBuyPrice = $buyPrice - $buyDiscount;
} elseif ($buyDiscount > 0 && $buyDiscountType == 1) {
$productBuyPrice = $buyPrice - (($buyDiscount / 100) * $buyPrice);
}
$productBuyPrice = $productBuyPrice * $productnumber * $quantity;
$quantityUnit += ($quantity * $productnumber);
$sellPrice += $productBuyPrice;
}
return array($sellPrice, $quantityUnit);
}
function getTotalAditionalBuyPriceByDateAndProductId($startDate, $endDate, $ProductIdselected, $overAllAveragePrice) {
global $mySellandruternbilldetailEx;
global $mySellbillandruternRecord;
global $myProductunitRecord;
global $myProductRecord;
global $myProductunitEx;
$sellPrice = 0;
$quantityUnit = 0;
$sellandreturndetailData = $mySellandruternbilldetailEx->queryWithDateAndConditionsTypeAndProductIdExt($startDate, $endDate, 0, $ProductIdselected);
$buyPriceType = $_POST["buyPriceType"];
foreach ($sellandreturndetailData as $sellandreturndetail) {
$quantity = $sellandreturndetail->sellbilldetailquantity;
$price = $sellandreturndetail->sellbilldetailprice;
$totalPrice = $sellandreturndetail->sellbilldetailtotalprice;
$discountValue = $sellandreturndetail->discountvalue;
$productunitId = $sellandreturndetail->productunitid;
//$buyPrice = $sellandreturndetail->buyprice;
switch ($buyPriceType) {
case "first":
$buyPrice = (float) $sellandreturndetail->buyprice;
break;
case "last":
$buyPrice = (float) $sellandreturndetail->lastbuyprice;
break;
case "mean":
$buyPrice = (float) $sellandreturndetail->meanbuyprice;
break;
case "last_discount":
$buyPrice = (float) $sellandreturndetail->lastbuyprice_withDiscount;
break;
case "mean_discount":
$buyPrice = (float) $sellandreturndetail->meanbuyprice_withDiscount;
break;
case "generalPrice":
$buyPrice = (float) $overAllAveragePrice;
break;
case "tax":
$buyprice = (float) $sellandreturndetail->lastbuyprice_withTax;
break;
case "mean_tax":
$buyprice = (float) $sellandreturndetail->meanbuyprice_withTax;
break;
}
$buyDiscount = $sellandreturndetail->buydiscount;
$buyDiscountType = $sellandreturndetail->buydiscounttype;
$productnumber = $myProductunitEx->getProductNumber($productunitId);
$productBuyPrice = $buyPrice;
if ($buyDiscount > 0 && $buyDiscountType == 0) {
$productBuyPrice = $buyPrice - $buyDiscount;
} elseif ($buyDiscount > 0 && $buyDiscountType == 1) {
$productBuyPrice = $buyPrice - (($buyDiscount / 100) * $buyPrice);
}
$productBuyPrice = $productBuyPrice * $productnumber * $quantity;
$quantityUnit += ($quantity * $productnumber);
$sellPrice += $productBuyPrice;
}
return array($sellPrice, $quantityUnit);
}
function getTotalAditionalReturnBuyPriceByDateAndProductId($startDate, $endDate, $ProductIdselected, $overAllAveragePrice) {
global $mySellandruternbilldetailEx;
global $mySellbillandruternRecord;
global $myProductunitRecord;
global $myProductRecord;
global $myProductunitEx;
$sellPrice = 0;
$quantityUnit = 0;
$sellandreturndetailData = $mySellandruternbilldetailEx->queryWithDateAndConditionsTypeAndProductIdExt($startDate, $endDate, 1, $ProductIdselected);
$buyPriceType = $_POST["buyPriceType"];
foreach ($sellandreturndetailData as $sellandreturndetail) {
$quantity = $sellandreturndetail->sellbilldetailquantity;
$price = $sellandreturndetail->sellbilldetailprice;
$totalPrice = $sellandreturndetail->sellbilldetailtotalprice;
$discountValue = $sellandreturndetail->discountvalue;
$productunitId = $sellandreturndetail->productunitid;
//$buyPrice = $sellandreturndetail->buyprice;
switch ($buyPriceType) {
case "first":
$buyPrice = (float) $sellandreturndetail->buyprice;
break;
case "last":
$buyPrice = (float) $sellandreturndetail->lastbuyprice;
break;
case "mean":
$buyPrice = (float) $sellandreturndetail->meanbuyprice;
break;
case "last_discount":
$buyPrice = (float) $sellandreturndetail->lastbuyprice_withDiscount;
break;
case "mean_discount":
$buyPrice = (float) $sellandreturndetail->meanbuyprice_withDiscount;
break;
case "generalPrice":
$buyPrice = (float) $overAllAveragePrice;
break;
case "tax":
$buyprice = (float) $sellandreturndetail->lastbuyprice_withTax;
break;
case "mean_tax":
$buyprice = (float) $sellandreturndetail->meanbuyprice_withTax;
break;
}
$buyDiscount = $sellandreturndetail->buydiscount;
$buyDiscountType = $sellandreturndetail->buydiscounttype;
$productnumber = $myProductunitEx->getProductNumber($productunitId);
$productBuyPrice = $buyPrice;
if ($buyDiscount > 0 && $buyDiscountType == 0) {
$productBuyPrice = $buyPrice - $buyDiscount;
} elseif ($buyDiscount > 0 && $buyDiscountType == 1) {
$productBuyPrice = $buyPrice - (($buyDiscount / 100) * $buyPrice);
}
$productBuyPrice = $productBuyPrice * $productnumber * $quantity;
$quantityUnit += ($quantity * $productnumber);
$sellPrice += $productBuyPrice;
}
return array($sellPrice, $quantityUnit);
}
function getTotalReturnBuyPriceByDateAndProductId($startDate, $endDate, $ProductIdselected, $overAllAveragePrice) {
global $myReturnsellbilldetailEx;
global $myReturnsellbillRecord;
global $myProductunitRecord;
global $myProductRecord;
global $myProductunitEx;
$sellPrice = 0;
$quantityUnit = 0;
$returnsellbilldetailData = $myReturnsellbilldetailEx->queryWithDateAndConditionsAndProductIdExt($startDate, $endDate, $ProductIdselected);
$buyPriceType = $_POST["buyPriceType"];
foreach ($returnsellbilldetailData as $returnsellbilldetail) {
$quantity = $returnsellbilldetail->returnsellbilldetailquantity;
$price = $returnsellbilldetail->returnsellbilldetailprice;
$totalPrice = $returnsellbilldetail->returnsellbilldetailtotalprice;
$discountValue = $returnsellbilldetail->discountvalue;
$productunitId = $returnsellbilldetail->productunitid;
//$buyPrice = $returnsellbilldetail->buyprice;
switch ($buyPriceType) {
case "first":
$buyPrice = (float) $returnsellbilldetail->buyprice;
break;
case "last":
$buyPrice = (float) $returnsellbilldetail->lastbuyprice;
break;
case "mean":
$buyPrice = (float) $returnsellbilldetail->meanbuyprice;
break;
case "last_discount":
$buyPrice = (float) $returnsellbilldetail->lastbuyprice_withDiscount;
break;
case "mean_discount":
$buyPrice = (float) $returnsellbilldetail->meanbuyprice_withDiscount;
break;
case "generalPrice":
$buyPrice = (float) $overAllAveragePrice;
break;
case "tax":
$buyprice = (float) $returnsellbilldetail->lastbuyprice_withTax;
break;
case "mean_tax":
$buyprice = (float) $returnsellbilldetail->meanbuyprice_withTax;
break;
}
$buyDiscount = $returnsellbilldetail->buydiscount;
$buyDiscountType = $returnsellbilldetail->buydiscounttype;
$productnumber = $myProductunitEx->getProductNumber($productunitId);
$productBuyPrice = $buyPrice;
if ($buyDiscount > 0 && $buyDiscountType == 0) {
$productBuyPrice = $buyPrice - $buyDiscount;
} elseif ($buyDiscount > 0 && $buyDiscountType == 1) {
$productBuyPrice = $buyPrice - (($buyDiscount / 100) * $buyPrice);
}
$productBuyPrice = $productBuyPrice * $productnumber * $quantity;
$quantityUnit += ($quantity * $productnumber);
$sellPrice += $productBuyPrice;
}
return array($sellPrice, $quantityUnit);
}
function loadProductCat() {
global $myProductcatEx;
global $myProductunitEx;
$productcatData = $myProductcatEx->queryProductcatInProduct();
foreach ($productcatData as $productcat) {
$productcatName;
$productcat->productCatName = loadProductCatNameById($productcat->productCatId, $productcatName, 1);
}
return $productcatData;
}
// select from Product tbl
function loadProductCatNameById($productCatId, $productcatName, $itr) {
global $myProductcatRecord;
$productcatNamex = $productcatName;
// select all data from producttbl
$productcatData = $myProductcatRecord->load($productCatId);
if (count($productcatData) > 0) {
if ($itr == 1) {
$productcatNamex = $productcatData->productCatName;
} elseif ($itr == 2) {
$productcatNamex = $productcatData->productCatName . "/" . $productcatNamex;
}
if ($productcatData->productCatParent != 0) {
return loadProductCatNameById($productcatData->productCatParent, $productcatNamex, 2);
}
}
return $productcatNamex;
}
function loadProductCatById($productCatId) {
global $myProductcatRecord;
$productCatSearchData = $myProductcatRecord->load($productCatId);
return $productCatSearchData;
}
function getTotalSellOpticByDateAndProductId($startDate, $endDate, $ProductIdselected) {
global $billsProductsEX;
$sellPrice = 0;
$quantityUnit = 0;
$finalbuypric = 0;
$opticSellData = $billsProductsEX->queryWithDateAndConditionsAndProductIdExt($startDate, $endDate, $ProductIdselected);
$buyPriceType = $_POST["buyPriceType"];
foreach ($opticSellData as $sellbilldetail) {
$quantity = $sellbilldetail->productno;
$price = $sellbilldetail->productprice;
$totalPrice = $sellbilldetail->producttotalprice;
$sellbillTotalBill = $sellbilldetail->netbillvalue;
$sellbillDiscount = $sellbilldetail->discountvalue;
$sellbillDiscountType = $sellbilldetail->discounttype;
//$buyprice = $sellbilldetail->productBuyPrice;
switch ($buyPriceType) {
case "first":
$buyprice = (float) $sellbilldetail->buyprice;
break;
case "last":
$buyprice = (float) $sellbilldetail->lastbuyprice;
break;
case "mean":
$buyprice = (float) $sellbilldetail->meanbuyprice;
break;
// case "last_discount":
// $buyPrice = (float) $sellbilldetail->lastbuyprice_withDiscount;
// break;
// case "mean_discount":
// $buyPrice = (float) $sellbilldetail->meanbuyprice_withDiscount;
// break;
default:
$buyprice = (float) $sellbilldetail->meanbuyprice;
break;
}
if ($sellbillDiscountType == 2) {
$sellbillDiscount = ($sellbillDiscount / 100) * $sellbillTotalBill;
}
$totalPriceBeforeDiscount = $price * $quantity; //product price before discount
$quantityUnit += $quantity;
//first Step قيمة خصم المنتج على الوحدة
//$firstStep = $discountValue;
//second Stepقيمة المنتج من الخصم على المنتج
//$secondStep = $totalPrice / $sellbillTotalBill;
if ($sellbillTotalBill == 0) {
$sellbillTotalBill = 1;
}
//third Step قيمة الخصم للمنتجات
$thirdStep = ($totalPrice / $sellbillTotalBill) * $sellbillDiscount;
//fourth Step قيمة خصم الفاتورة للوحدة
//$fourthStep = $thirdStep;
//$sellPriceForOneProduct= $totalPriceBeforeDiscount - ($firstStep + $fourthStep);
$allbuyprice = $buyprice * $quantity;
$finalbuypric += $allbuyprice;
$sellPriceForOneProduct = $totalPriceBeforeDiscount - $thirdStep;
$sellPrice += $sellPriceForOneProduct;
}
return array($sellPrice, $quantityUnit, $finalbuypric, $thirdStep);
}
function getTotalReturnOpticByDateAndProductId($startDate, $endDate, $ProductIdselected) {
global $billsReturnProductsEX;
$ReturnSellPrice = 0;
$quantityUnit = 0;
$finalbuyprice = 0;
$returnsellbilldetailData = $billsReturnProductsEX->queryWithDateAndConditionsAndProductIdExt($startDate, $endDate, $ProductIdselected);
$buyPriceType = $_POST["buyPriceType"];
foreach ($returnsellbilldetailData as $returnsellbilldetail) {
$quantity = $returnsellbilldetail->productno;
$price = $returnsellbilldetail->productprice;
$totalPrice = $returnsellbilldetail->producttotalprice;
$sellbillTotalBill = $returnsellbilldetail->returnedprice;
//$buyprice = $returnsellbilldetail->productBuyPrice;
switch ($buyPriceType) {
case "first":
$buyprice = (float) $returnsellbilldetail->buyprice;
break;
case "last":
$buyprice = (float) $returnsellbilldetail->lastbuyprice;
break;
case "mean":
$buyprice = (float) $returnsellbilldetail->meanbuyprice;
break;
// case "last_discount":
// $buyPrice = (float) $returnsellbilldetail->lastbuyprice_withDiscount;
// break;
// case "mean_discount":
// $buyPrice = (float) $returnsellbilldetail->meanbuyprice_withDiscount;
// break;
default:
$buyprice = (float) $returnsellbilldetail->meanbuyprice;
break;
}
$totalPriceBeforeDiscount = $price * $quantity;
$quantityUnit += $quantity;
if ($sellbillTotalBill == 0) {
$sellbillTotalBill = 1;
}
//third Step قيمة الخصم للمنتجات
$thirdStep = $totalPrice / $sellbillTotalBill;
$allbuyprice = $quantity * $buyprice;
//print_r("<br>buyprice".$buyprice);
//print_r("<br>quantity".$quantity);
$finalbuyprice += $allbuyprice;
$ReturnSellPriceForOneProduct = $totalPriceBeforeDiscount - ($thirdStep);
$ReturnSellPrice += $ReturnSellPriceForOneProduct;
}
//print($ReturnSellPrice."ReturnSellPrice<br>");
return array($ReturnSellPrice, $quantityUnit, $finalbuyprice, $thirdStep);
}
function getAllSubCat($catid, $mode) {
global $productCatExt;
global $productCatDAO;
global $catsIDS;
global $lastLevelCatIDS;
//mode = 1 get all sub cats
//mode = 2 get last level cats
$result = $productCatExt->queryByParentExt($catid);
if (count($result) > 0) {
foreach ($result as $data) {
if ($mode == 1) {
$catsIDS .= "," . $data->productCatId;
getAllSubCat($data->productCatId, $mode);
} elseif ($mode == 2) {
$childData = $productCatExt->queryByParentExt($data->productCatId);
if (count($childData) > 0) {
getAllSubCat($data->productCatId, $mode);
} else {
if (!empty($data->productCatId)) {
array_push($lastLevelCatIDS, $data->productCatId);
}
}
}
}
} else {
// if ($mode == 2) {
// $childData = $productCatExt->queryByParentExt($data->productCatId);
// if (count($childData) > 0) {
// getAllSubCat($data->productCatId, $mode);
// } else {
// if (!empty($data->productCatId)) {
// array_push($lastLevelCatIDS, $data->productCatId);
// }
// }
// }
}
}
?>