<?php

session_start();
global $showoutside;

$_SESSION['dbname'] = $_POST['db'];
$_SESSION['userid'] = $_POST['userid'];
$_SESSION['usergroupid'] = 1;
$_SESSION['username'] = 1;
$_SESSION['usergroupname'] = 1;
$_SESSION['saveid'] = $_POST['saveid'];
$_SESSION['employeename'] = 1;
$_SESSION['searchinonesave'] = 1;
$_SESSION['branchId'] = 1;

//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');
//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');
//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');
//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');
//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');
//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');
//Storereport
require_once('../models/dao/StorereportDAO.class.php');
require_once('../models/dto/Storereport.class.php');
require_once('../models/mysql/StorereportMySqlDAO.class.php');
require_once('../models/mysql/ext/StorereportMySqlExtDAO.class.php');
//Storedetail
require_once('../models/dao/StoredetailDAO.class.php');
require_once('../models/dto/Storedetail.class.php');
require_once('../models/mysql/StoredetailMySqlDAO.class.php');
require_once('../models/mysql/ext/StoredetailMySqlExtDAO.class.php');
//Store
require_once('../models/dao/StoreDAO.class.php');
require_once('../models/dto/Store.class.php');
require_once('../models/mysql/StoreMySqlDAO.class.php');
require_once('../models/mysql/ext/StoreMySqlExtDAO.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');
//Save
require_once('../models/dao/SaveDAO.class.php');
require_once('../models/dto/Save.class.php');
require_once('../models/mysql/SaveMySqlDAO.class.php');
require_once('../models/mysql/ext/SaveMySqlExtDAO.class.php');
//Savedaily
require_once('../models/dao/SavedailyDAO.class.php');
require_once('../models/dto/Savedaily.class.php');
require_once('../models/mysql/SavedailyMySqlDAO.class.php');
require_once('../models/mysql/ext/SavedailyMySqlExtDAO.class.php');
//Client
require_once('../models/dao/ClientDAO.class.php');
require_once('../models/dto/Client.class.php');
require_once('../models/mysql/ClientMySqlDAO.class.php');
require_once('../models/mysql/ext/ClientMySqlExtDAO.class.php');
//Clientdebtchange
require_once('../models/dao/ClientdebtchangeDAO.class.php');
require_once('../models/dto/Clientdebtchange.class.php');
require_once('../models/mysql/ClientdebtchangeMySqlDAO.class.php');
require_once('../models/mysql/ext/ClientdebtchangeMySqlExtDAO.class.php');
//Billname
require_once('../models/dao/BillnameDAO.class.php');
require_once('../models/dto/Billname.class.php');
require_once('../models/mysql/BillnameMySqlDAO.class.php');
require_once('../models/mysql/ext/BillnameMySqlExtDAO.class.php');
//Billsetting
require_once('../models/dao/BillsettingsDAO.class.php');
require_once('../models/dto/Billsetting.class.php');
require_once('../models/mysql/BillsettingsMySqlDAO.class.php');
require_once('../models/mysql/ext/BillsettingsMySqlExtDAO.class.php');
//User
require_once('../models/dao/UserDAO.class.php');
require_once('../models/dto/User.class.php');
require_once('../models/mysql/UserMySqlDAO.class.php');
require_once('../models/mysql/ext/UserMySqlExtDAO.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');
//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');
//Unit
require_once('../models/dao/UnitDAO.class.php');
require_once('../models/dto/Unit.class.php');
require_once('../models/mysql/UnitMySqlDAO.class.php');
require_once('../models/mysql/ext/UnitMySqlExtDAO.class.php');
//Productserial
require_once('../models/dao/ProductserialDAO.class.php');
require_once('../models/dto/Productserial.class.php');
require_once('../models/mysql/ProductserialMySqlDAO.class.php');
require_once('../models/mysql/ext/ProductserialMySqlExtDAO.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');
//Soldserialproduct
require_once('../models/dao/SoldserialproductDAO.class.php');
require_once('../models/dto/Soldserialproduct.class.php');
require_once('../models/mysql/SoldserialproductMySqlDAO.class.php');
require_once('../models/mysql/ext/SoldserialproductMySqlExtDAO.class.php');

//user
require_once('../models/dao/UserDAO.class.php');
require_once('../models/dto/User.class.php');
require_once('../models/mysql/UserMySqlDAO.class.php');
require_once('../models/mysql/ext/UserMySqlExtDAO.class.php');

//Usergroup
require_once('../models/dao/UsergroupDAO.class.php');
require_once('../models/dto/Usergroup.class.php');
require_once('../models/mysql/UsergroupMySqlDAO.class.php');
require_once('../models/mysql/ext/UsergroupMySqlExtDAO.class.php');

//Sellbilldetailorder
require_once('../models/dao/SellbilldetailorderDAO.class.php');
require_once('../models/dto/Sellbilldetailorder.class.php');
require_once('../models/mysql/SellbilldetailorderMySqlDAO.class.php');
require_once('../models/mysql/ext/SellbilldetailorderMySqlExtDAO.class.php');

//Sellbillorder
require_once('../models/dao/SellbillorderDAO.class.php');
require_once('../models/dto/Sellbillorder.class.php');
require_once('../models/mysql/SellbillorderMySqlDAO.class.php');
require_once('../models/mysql/ext/SellbillorderMySqlExtDAO.class.php');

//Temsellbill
require_once('../models/dao/TemsellbillDAO.class.php');
require_once('../models/dto/Temsellbill.class.php');
require_once('../models/mysql/TemsellbillMySqlDAO.class.php');
require_once('../models/mysql/ext/TemsellbillMySqlExtDAO.class.php');
//Temsellbilldetail
require_once('../models/dao/TemsellbilldetailDAO.class.php');
require_once('../models/dto/Temsellbilldetail.class.php');
require_once('../models/mysql/TemsellbilldetailMySqlDAO.class.php');
require_once('../models/mysql/ext/TemsellbilldetailMySqlExtDAO.class.php');

//Temreturnsellbill
require_once('../models/dao/TemreturnsellbillDAO.class.php');
require_once('../models/dto/Temreturnsellbill.class.php');
require_once('../models/mysql/TemreturnsellbillMySqlDAO.class.php');
require_once('../models/mysql/ext/TemreturnsellbillMySqlExtDAO.class.php');
//Temreturnsellbilldetail
require_once('../models/dao/TemreturnsellbilldetailDAO.class.php');
require_once('../models/dto/Temreturnsellbilldetail.class.php');
require_once('../models/mysql/TemreturnsellbilldetailMySqlDAO.class.php');
require_once('../models/mysql/ext/TemreturnsellbilldetailMySqlExtDAO.class.php');

//Temsellbillandrutern
require_once('../models/dao/TemsellbillandruternDAO.class.php');
require_once('../models/dto/Temsellbillandrutern.class.php');
require_once('../models/mysql/TemsellbillandruternMySqlDAO.class.php');
require_once('../models/mysql/ext/TemsellbillandruternMySqlExtDAO.class.php');
//Temsellandruternbilldetail
require_once('../models/dao/TemsellandruternbilldetailDAO.class.php');
require_once('../models/dto/Temsellandruternbilldetail.class.php');
require_once('../models/mysql/TemsellandruternbilldetailMySqlDAO.class.php');
require_once('../models/mysql/ext/TemsellandruternbilldetailMySqlExtDAO.class.php');

require_once('../models/dao/CostcenterDAO.class.php');
require_once('../models/dto/Costcenter.class.php');
require_once('../models/mysql/CostcenterMySqlDAO.class.php');
require_once('../models/mysql/ext/CostcenterMySqlExtDAO.class.php');

require_once('../models/dao/CostcenterdetailDAO.class.php');
require_once('../models/dto/Costcenterdetail.class.php');
require_once('../models/mysql/CostcenterdetailMySqlDAO.class.php');
require_once('../models/mysql/ext/CostcenterdetailMySqlExtDAO.class.php');


//get the do the action
$do = $_GET['do'];

/* ======================

  Controller Name :- sellbillController

  OPERTATION in Controller

  1-display add form
  2- add in sellbill, sellbilldetail, sellbillandrutern, sellandruternbilldetail, returnsellbill, returnsellbilldetail tbl
  3- display sucess or error

  ======================== */

//handling saveid session
/* if(!isset($_SESSION['saveid']))
  {
  $_SESSION['saveid'] = 1;
  }
 */

//here the global templates
//$smarty->display("headbeil.html");
//here goes the instances and general variables
//Sellbilldetailorder
$Sellbilldetailorder = new Sellbilldetailorder();
$SellbilldetailorderDAO = new SellbilldetailorderMySqlDAO();
$SellbilldetailorderEX = new SellbilldetailorderMySqlExtDAO();

//Sellbillorder
$Sellbillorder = new Sellbillorder();
$SellbillorderDAO = new SellbillorderMySqlDAO();
$SellbillorderEX = new SellbillorderMySqlExtDAO();
//Sellbill
$mySellbill = new Sellbill();
$mySellbillRecord = new SellbillMySqlDAO();
$mySellbillEx = new SellbillMySqlExtDAO();
//Sellbilldetail
$mySellbilldetail = new Sellbilldetail();
$mySellbilldetailRecord = new SellbilldetailMySqlDAO();
$mySellbilldetailEx = new SellbilldetailMySqlExtDAO();
//Returnsellbill
$myReturnsellbill = new Returnsellbill();
$myReturnsellbillRecord = new ReturnsellbillMySqlDAO();
$myReturnsellbillEx = new ReturnsellbillMySqlExtDAO();


//Returnsellbilldetail
$myReturnsellbilldetail = new Returnsellbilldetail();
$myReturnsellbilldetailRecord = new ReturnsellbilldetailMySqlDAO();
$myReturnsellbilldetailEx = new ReturnsellbilldetailMySqlExtDAO();


//Sellbillandrutern
$mySellbillandrutern = new Sellbillandrutern();
$mySellbillandruternRecord = new SellbillandruternMySqlDAO();
$mySellbillandruternEx = new SellbillandruternMySqlExtDAO();
//Sellandruternbilldetail
$mySellandruternbilldetail = new Sellandruternbilldetail();
$mySellandruternbilldetailRecord = new SellandruternbilldetailMySqlDAO();
$mySellandruternbilldetailEx = new SellandruternbilldetailMySqlExtDAO();
//Storereport
$myStorereport = new Storereport();
$myStorereportRecord = new StorereportMySqlDAO();
$myStorereportEx = new StorereportMySqlExtDAO();
//Storedetail
$myStoredetailEx = new StoredetailMySqlExtDAO();
$myStoredetailRecord = new StoredetailMySqlDAO();
//Store
$myStoreRecord = new StoreMySqlDAO();
//Product
$myProductRecord = new ProductMySqlDAO();
$myProductEx = new ProductMySqlExtDAO();
//save
$mySave = new Save();
$mySaveRecord = new SaveMySqlDAO();
$mySaveEx = new SaveMySqlExtDAO();
//savedaily
$mySavedaily = new Savedaily();
$mySavedailyRecord = new SavedailyMySqlDAO();
$mySavedailyEx = new SavedailyMySqlExtDAO();
//Client
$myClientRecord = new ClientMySqlDAO();
$myClient = new Client();
$myClientEx = new ClientMySqlExtDAO();
//Clientdebtchange
$myClientdebtchange = new Clientdebtchange();
$myClientdebtchangeRecord = new ClientdebtchangeMySqlDAO();
//Billname
$myBillnameRecord = new BillnameMySqlDAO();
$myBillnameEx = new BillnameMySqlExtDAO();
//Billsetting
$myBillsettingEx = new BillsettingsMySqlExtDAO();
//User
$myUserEx = new UserMySqlExtDAO();

//Productunit
$myProductunitEx = new ProductunitMySqlExtDAO();
//$Productunit= new Productunit();
//$ProductunitDAO= new ProductunitDAO();
//Productcat
$myProductcatRecord = new ProductcatMySqlDAO();
$myProductcatEx = new ProductcatMySqlExtDAO();
//Unit
$myUnitRecord = new UnitMySqlDAO();
//Productserial
$myProductserial = new Productserial();
$myProductserialEx = new ProductserialMySqlExtDAO();
//Programsetting
$ProgramsettingDAO = new ProgramsettingsMySqlDAO();
$programSettingExt = new ProgramsettingsMySqlExtDAO();
//Soldserialproduct
$soldSerialProduct = new Soldserialproduct();
$soldSerialProductDAO = new SoldserialproductMySqlDAO();
$soldSerialProductExt = new SoldserialproductMySqlExtDAO();

$user = new User();
$userDAO = new UserMySqlDAO();
$userEX = new UserMySqlExtDAO();

//Usergroup
$Usergroup = new Usergroup();
$UsergroupDAO = new UsergroupMySqlDAO();
$UsergroupEX = new UsergroupMySqlExtDAO();

//Temsellbill
$Temsellbill = new Temsellbill();
$TemsellbillDAO = new TemsellbillMySqlDAO();
$TemsellbillEX = new TemsellbillMySqlExtDAO();
//Temsellbilldetail
$Temsellbilldetail = new Temsellbilldetail();
$TemsellbilldetailDAO = new TemsellbilldetailMySqlDAO();
$TemsellbilldetailEX = new TemsellbilldetailMySqlExtDAO();

//Temreturnsellbill
$Temreturnsellbill = new Temreturnsellbill();
$TemreturnsellbillDAO = new TemreturnsellbillMySqlDAO();
$TemreturnsellbillEX = new TemreturnsellbillMySqlExtDAO();
//Temreturnsellbilldetail
$Temreturnsellbilldetail = new Temreturnsellbilldetail();
$TemreturnsellbilldetailDAO = new TemreturnsellbilldetailMySqlDAO();
$TemreturnsellbilldetailEX = new TemreturnsellbilldetailMySqlExtDAO();

//Temsellbillandrutern
$Temsellbillandrutern = new Temsellbillandrutern();
$TemsellbillandruternDAO = new TemsellbillandruternMySqlDAO();
$TemsellbillandruternEX = new TemsellbillandruternMySqlExtDAO();
//Temsellandruternbilldetail
$Temsellandruternbilldetail = new Temsellandruternbilldetail();
$TemsellandruternbilldetailDAO = new TemsellandruternbilldetailMySqlDAO();
$TemsellandruternbilldetailEX = new TemsellandruternbilldetailMySqlExtDAO();


require_once('../models/dao/ClientareaDAO.class.php');
require_once('../models/dto/Clientarea.class.php');
require_once('../models/mysql/ClientareaMySqlDAO.class.php');
require_once('../models/mysql/ext/ClientareaMySqlExtDAO.class.php');

$Clientarea = new Clientarea();
$ClientareaDAO = new ClientareaMySqlDAO();
$ClientareaEX = new ClientareaMySqlExtDAO();


$Costcenterdetail = new Costcenterdetail();
$CostcenterdetailDAO = new CostcenterdetailMySqlDAO();
$CostcenterdetailEX = new CostcenterdetailMySqlExtDAO();

//Costcenter
$Costcenter = new Costcenter();
$CostcenterDAO = new CostcenterMySqlDAO();
$CostcenterEX = new CostcenterMySqlExtDAO();





$Usergroupdata = $UsergroupDAO->load($_SESSION['usergroupid']);
$smarty->assign("Usergroupdata", $Usergroupdata);


$userdata = $userDAO->load($_SESSION['userid']);
$smarty->assign("userdata", $userdata);

include_once("selllfunction.php");




//
//include_once("../public/authentication.php");
// echo "here";

$ordertype = $_POST["ordertype"];
$url = "";

$addData = add();
//  print_r($addData);
$sellbillId = $addData[0];
if ($sellbillId > 0) {

    echo "1";
}
$returnsellbillId = $addData[1];
$productsBeforeValid = $addData[2];
$saveValuebeforeValid = $addData[3];
$billtype = $addData[4];

// add in sellbill tbl
function add() {
    //
    //  echo "add works";
    //e cho $_POST['hidden_debt'];
    global $mySellbill;
    global $mySellbillRecord;
    global $mySellbilldetail;
    global $mySellbilldetailRecord;

    global $myReturnsellbill;
    global $myReturnsellbillRecord;
    global $myReturnsellbilldetail;
    global $myReturnsellbilldetailRecord;


    global $mySellbillandrutern;
    global $mySellbillandruternRecord;
    global $mySellandruternbilldetail;
    global $mySellandruternbilldetailRecord;


    //Temsellbill
    global $Temsellbill;
    global $TemsellbillDAO;
    //Temsellbilldetail
    global $Temsellbilldetail;
    global $TemsellbilldetailDAO;

    //Temreturnsellbill
    global $Temreturnsellbill;
    global $TemreturnsellbillDAO;
    //Temreturnsellbilldetail
    global $Temreturnsellbilldetail;
    global $TemreturnsellbilldetailDAO;

    //Temsellbillandrutern
    global $Temsellbillandrutern;
    global $TemsellbillandruternDAO;
    //Temsellandruternbilldetail
    global $Temsellandruternbilldetail;
    global $TemsellandruternbilldetailDAO;



    global $CostcenterEX;
    global $CostcenterDAO;
    global $Costcenter;

    global $CostcenterdetailDAO;
    global $Costcenterdetail;


    global $soldSerialProduct;
    global $soldSerialProductDAO;

    global $ProductunitDAO;
    global $Productunit;
    global $myProductunitEx;

    global $myClientRecord;
    $billnameId = $_POST['billnameid'];

    $settingReturn = $_POST['settingreturn'];
    $settingClient = $_POST['settingclient'];
    $settingStore = $_POST['settingstore'];
    $settingSeller = $_POST['settingseller'];
    $settingParcode = $_POST['settingparcode'];
    $settingDate = $_POST['settingdate'];
    $settingNewproduct = $_POST['settingnewproduct'];
    $settingComment = $_POST['settingcomment'];
    $settingDiscount = $_POST['settingdiscount'];
    $settingQuantityCondition = $_POST['settingquantitycondition'];

    $tempClientName = $_POST['tempclientName'];

    $sellbillclientId = $_POST['supplier'];
    $sellbilltotaldeptBefor = $_POST['hidden_debt'];
    $sellbilltotaldeptAfter = $_POST['clientdebtafter'];
    $tax = $_POST["tax"];

    $sellbillcarnumber = $_POST['carNumber'];
    $sellbillcartype = $_POST['carType'];
    $sellbillcarchase = $_POST['carChase'];
    $sellbillcarmotor = $_POST['carMotor'];

    $Costcenterid = $_POST["Costcenter"];

    $clientName = loadClientNameById($sellbillclientId);

    $sellbildirectPayment;
    //client
    if ($settingClient == 0 && $_POST['supplier'] != 1) {
        $sellbildirectPayment = 1;
    } else {
        $sellbildirectPayment = 0;
    }

    //Date
    if ($settingDate == 0) {
        $sellbillDate = $_POST['bn'];
    } else {
        $sellbillDate = date("Y-m-d h:m:s");
    }

    //Store
    if ($settingStore == 0) {
        $sellbillstoreId = $_POST['storeid'];
    } else {
        $sellbillstoreId = $_POST['storeid'];
    }

    //seller
    if ($settingSeller == 0) {
        $sellerId = $_POST['sellerid'];
        if ($sellerId == "-1" || $sellerId == "" || $sellerId == NULL) {
            $sellerId = 0;
        }
    } else {
        $sellerId = 0;
    }

    $sellbillSerial = $_POST['bns'];
    $priceType = $_POST['hiddenpricetype'];

    $sellbilltotalBill = $_POST['sellbilltotalbill']; //اجمالى الفاتورة قبل الخصم
    $sellbillDiscountType = $_POST['distype']; //نوع الخصم

    $sellbillDiscount = $_POST['gendis']; //قيمة الخصم
    $sellbillAftertotalBill = $_POST['sellbillaftertotalbill']; //القيمة بعد الخصم
    $sellbilltotalPayed = $_POST['genpay']; //المدفوع
    $sellbillFinalbill = $sellbillAftertotalBill - $sellbilltotalPayed; //المتبقى

    $sellbillPrice = $_POST['sellbillprice']; //اجمالى المبيعات
    $returnsellbillPrice = $_POST['returnsellbillprice']; //اجمالى مردودات المبيعات

    $sellQuantity = $_POST['sellQuantity'];
    $returnsellQuantity = $_POST['returnsellQuantity'];

    $clientdata = $myClientRecord->load($sellbillclientId);

    $sellbilltotaldeptBefor = $clientdata->clientdebt; //$_POST['hidden_debt'];
    $gen4totalinput = $_POST["gen4totalinput"];

    if ($sellbillclientId == 1) {
        $sellbilltotaldeptAfter = $sellbilltotaldeptBefor + $gen4totalinput; //$_POST['clientdebtafter'];
    } else {

        $sellbilltotaldeptAfter = $sellbilltotaldeptBefor + $gen4totalinput; //$sellbillFinalbill;
    }




    //////////////////////////////////////////////////////////////////////////

    $sellbillItr = $_POST['hidden_itr'];
    $returnSellbillItr = $_POST['returnhidden_itr'];

    $productsBeforeValid = 1;
    $saveValuebeforeValid = 1;
    /* ----------------------------- */
    $sellbillId;
    $returnsellbillId;
    $billtype;
    /* ------------------------ */

    if ($billnameId != 11) {
        //check storerdetail value
        //check product quantity
        if ($sellbillPrice > 0) {
            $h = 1;
            for ($h = 1; $h <= $sellbillItr; $h++) {
                $productId = $_POST['product' . $h . ''];
                $productQuantity = $_POST['pronum' . $h . ''];

                if (isset($productId) && $productId != '-1' && $productId != "") {
                    //get storefrom productquantity before change
                    $storedetailData = getStoredetailData($sellbillstoreId, $productId);

                    $allStoredetailData = $storedetailData[0];
                    $storedetailId = $storedetailData[1];
                    $productquantityBefore = $storedetailData[2];

                    //check if productquantityFromBefore greater than 0 or not
                    $productsBeforeValid = 1;
                    if ($productquantityBefore > 0 && count($allStoredetailData) > 0) {
                        $productsAfterValid = $productquantityBefore - $productQuantity;

                        if ($productsAfterValid >= 0) {
                            $productsBeforeValid = 1;
                        } else {
                            $productsBeforeValid = 0;
                            //return $productsBeforeValid;
                        }
                    } else {
                        $productsBeforeValid = 0;
                        //return $productsBeforeValid;
                    }
                }
            }
        }




        /////////////////check savefrom value before transfer//////////////////////

        if ($returnsellbillPrice > 0 && ($sellbillPrice <= 0 || $sellbillAftertotalBill)) {
            $saveValueafterValid;

            //get save value
            $saveValueBefore = getSaveValueBefore($_SESSION['saveid']);

            $saveValueafterValid = $saveValueBefore - $sellbilltotalPayed;

            if ($saveValueafterValid >= 0) {
                $saveValuebeforeValid = 1;
            } else {
                $saveValuebeforeValid = 0;
                //return $saveValuebeforeValid;
            }
        }


        $billtype;
        // مبيعات و ومردودات
        //insert data into Sellbillandrutern tbl
        if ($sellbillPrice > 0 && $returnsellbillPrice > 0) {


            $billtype = 3; // مبيعات و ومردودات

            $mySellbillandrutern->billnameid = $billnameId;
            $mySellbillandrutern->conditions = 0;
            $mySellbillandrutern->sellbildirectpayment = $sellbildirectPayment;
            $mySellbillandrutern->sellbillaftertotalbill = $sellbillAftertotalBill;
            $mySellbillandrutern->sellbillclientid = $sellbillclientId;
            $mySellbillandrutern->sellbillclientname = $clientName;
            $mySellbillandrutern->sellbilldate = $sellbillDate;
            $mySellbillandrutern->sellbilldiscount = $sellbillDiscount;
            $mySellbillandrutern->sellbilldiscounttype = $sellbillDiscountType;
            $mySellbillandrutern->tempclientName = $tempClientName;
            $mySellbillandrutern->sellQuantity = $sellQuantity;
            $mySellbillandrutern->returnsellQuantity = $returnsellQuantity;
            $mySellbillandrutern->tax = $tax;


            if ($sellbilltotalBill < 0) {
                $sellbillFinalbill = $sellbillAftertotalBill + $sellbilltotalPayed;
            }
            $mySellbillandrutern->sellbillfinalbill = $sellbillFinalbill;
            $mySellbillandrutern->sellbillsaveid = $_SESSION['saveid'];
            $mySellbillandrutern->sellbillserial = $sellbillSerial;
            $mySellbillandrutern->sellbillstoreid = $sellbillstoreId;
            $mySellbillandrutern->sellbillsysdate = date("Y-m-d H:i:s");
            $mySellbillandrutern->sellbilltotalbill = $sellbilltotalBill;
            $mySellbillandrutern->sellbilltotaldeptafter = $sellbilltotaldeptAfter;
            $mySellbillandrutern->sellbilltotaldeptbefor = $sellbilltotaldeptBefor;
            $mySellbillandrutern->sellbilltotalpayed = $sellbilltotalPayed;
            $mySellbillandrutern->sellerid = $sellerId;
            $mySellbillandrutern->userid = $_SESSION['userid'];
            $mySellbillandrutern->sellbillprice = $sellbillPrice;
            $mySellbillandrutern->returnsellbillprice = $returnsellbillPrice;
            $mySellbillandrutern->carnumber = $sellbillcarnumber;
            $mySellbillandrutern->cartype = $sellbillcartype;
            $mySellbillandrutern->carchase = $sellbillcarchase;
            $mySellbillandrutern->carmotor = $sellbillcarmotor;
            $mySellbillandrutern->costcenterid = $Costcenterid;






            $sellbillId = $mySellbillandruternRecord->insert($mySellbillandrutern);

            $Costcenterdetail->costamount = $sellbillAftertotalBill;
            $Costcenterdetail->costcenterid = $Costcenterid;
            $Costcenterdetail->costdate = date('Y-m-d');
            $Costcenterdetail->del = 0;
            $Costcenterdetail->modelid = $sellbillId;
            $Costcenterdetail->processname = 'فاتوره مبيعات ومردودات';
            $Costcenterdetail->tablename = 'sellbillandruternController.php';
            $Costcenterdetail->type = 2;
            $Costcenterdetail->uesrid = $_SESSION['userid'];

            if ($Costcenterid != -1 && $Costcenterid != '-1') {
                $CostcenterdetailDAO->insert($Costcenterdetail);
            }



            //insert Sell Data into Sellandruternbilldetail tbl
            $sellbillItr = $_POST['hidden_itr'];
            $h = 1;
            for ($h = 1; $h <= $sellbillItr; $h++) {
                $parcode = $_POST['parcode' . $h . ''];
                $parcodeType = $_POST['parcodeType' . $h . ''];
                $productserailId = $_POST['productserailid' . $h . ''];
                $productId = $_POST['product' . $h . ''];
                $productunitId = $_POST['productunit' . $h . ''];
                $quantity = $_POST['pronum' . $h . ''];
                $price = $_POST['proprice' . $h . ''];
                $discountValue = $_POST['prodis' . $h . ''];
                $discounttype = $_POST['discounttype' . $h . ''];
                $totalPrice = $_POST['hidden_prototal' . $h . ''];
                $comment = $_POST['comment' . $h . ''];
                $prstorid = $_POST['prstorid' . $h . ''];

                if (isset($prstorid) && $prstorid != -1 && $prstorid != '') {

                    $sellbillstoreId = $prstorid;
                } else {
                    $sellbillstoreId = $_POST['storeid'];
                    //print_r('in  else sellbillstoreId'.$sellbillstoreId.'<br>');
                }

                if ($productunitId == "") {
                    $productunitId = 0;
                }


                if (isset($productId) && $productId != '-1' && $productId != "") {


                    $productData = loadProductById($productId);


                    $mySellandruternbilldetail->buyprice = $productData->productBuyPrice;
                    $mySellandruternbilldetail->discountvalue = $discountValue;
                    $mySellandruternbilldetail->note = $comment;
                    $mySellandruternbilldetail->parcode = $parcode;
                    $mySellandruternbilldetail->pricetype = $priceType;
                    $mySellandruternbilldetail->productunitid = $productunitId;
                    $mySellandruternbilldetail->sellbilldetailcatid = $productData->productCatId;
                    $mySellandruternbilldetail->sellbilldetaildate = date("Y-m-d h:m:s");
                    $mySellandruternbilldetail->sellbilldetailprice = $price;
                    $mySellandruternbilldetail->sellbilldetailproductid = $productId;
                    $mySellandruternbilldetail->sellbilldetailquantity = $quantity;
                    $mySellandruternbilldetail->sellbilldetailtotalprice = $totalPrice;
                    $mySellandruternbilldetail->sellbillid = $sellbillId;
                    $mySellandruternbilldetail->selltype = 0; //مبيعات
                    $mySellandruternbilldetail->buydiscount = $productData->buydiscount;
                    $mySellandruternbilldetail->buydiscounttype = $productData->discounttype;
                    $mySellandruternbilldetail->storeid = $sellbillstoreId;
                    $mySellandruternbilldetail->discounttype = $discounttype;



                    $mySellandruternbilldetailRecord->insert($mySellandruternbilldetail);


                    $productunitData = loadProductUnitWithProductAndUnit($productId, $productunitId);
                    $productnumber = $productunitData->productnumber;
                    $finalquantity = $quantity * $productnumber;
                    //update DON if is Serial
                    if ($parcodeType == "serialnumber") {
                        //update don column (quantity) in productserial table
                        updateSerailQty($productserailId, $finalquantity);
                        insertIntoSoldSerialProduct($productserailId, $finalquantity, $sellbillId, 1);
                    }



                    //get store productquantity before change
                    $storedetailData = getStoredetailData($sellbillstoreId, $productId);

                    $allStoredetailData = $storedetailData[0];
                    $storedetailId = $storedetailData[1];
                    $productquantityBefore = $storedetailData[2];



                    if (count($allStoredetailData) > 0) {

                        //update productquantity in storedetail
                        $productquantityAfter = decreaseProductQuantity($storedetailId, $productquantityBefore, $finalquantity);


                        //insert in storereport
                        insertStorereportupdate($productId, $sellbillstoreId, $finalquantity, $productquantityBefore, $productquantityAfter, 1, $sellbillId, "اضافة فاتورة مبيعات", "sellbillandruternController.php", $sellbillDate);
                    } else {
                        $specialQuantityAfter = $finalquantity * -1;

                        //insert in storedetail tbl
                        insertStoredetailupdate($sellbillstoreId, $productId, $specialQuantityAfter, $sellbillDate);

                        //insert in storereport
                        insertStorereportupdate($productId, $sellbillstoreId, $finalquantity, 0, $specialQuantityAfter, 1, $sellbillId, "اضافة فاتورة مبيعات", "sellbillandruternController.php", $sellbillDate);
                    }
                }
            }



            //insert Return Data into Sellandruternbilldetail tbl
            $returnSellbillItr = $_POST['returnhidden_itr'];
            $h = 1;
            for ($h = 1; $h <= $returnSellbillItr; $h++) {
                $parcode = $_POST['returnparcode' . $h . ''];
                $parcodeType = $_POST['returnparcodeType' . $h . ''];
                $productserailId = $_POST['returnproductserailid' . $h . ''];
                $productId = $_POST['returnproduct' . $h . ''];
                $productunitId = $_POST['returnproductunit' . $h . ''];
                $quantity = $_POST['returnpronum' . $h . ''];
                $price = $_POST['returnproprice' . $h . ''];
                $discountValue = $_POST['returnprodis' . $h . ''];
                $totalPrice = $_POST['returnhidden_prototal' . $h . ''];
                $comment = $_POST['returncomment' . $h . ''];
                $returndiscounttype = $_POST['returndiscounttype' . $h . ''];


                if (isset($reprstorid) && $reprstorid != -1 && $reprstorid != '') {

                    $sellbillstoreId = $reprstorid;
                } else {
                    $sellbillstoreId = $_POST['storeid'];
                    //print_r('in  else sellbillstoreId'.$sellbillstoreId.'<br>');
                }
                if ($productunitId == "") {
                    $productunitId = 0;
                }

                if (isset($productId) && $productId != '-1' && $productId != "") {
                    $productData = loadProductById($productId);


                    $mySellandruternbilldetail->buyprice = $productData->productBuyPrice;
                    $mySellandruternbilldetail->discountvalue = $discountValue;
                    $mySellandruternbilldetail->note = $comment;
                    $mySellandruternbilldetail->parcode = $parcode;
                    $mySellandruternbilldetail->pricetype = $priceType;
                    $mySellandruternbilldetail->productunitid = $productunitId;
                    $mySellandruternbilldetail->sellbilldetailcatid = $productData->productCatId;
                    $mySellandruternbilldetail->sellbilldetaildate = date("Y-m-d h:m:s");
                    $mySellandruternbilldetail->sellbilldetailprice = $price;
                    $mySellandruternbilldetail->sellbilldetailproductid = $productId;
                    $mySellandruternbilldetail->sellbilldetailquantity = $quantity;
                    $mySellandruternbilldetail->sellbilldetailtotalprice = $totalPrice;
                    $mySellandruternbilldetail->sellbillid = $sellbillId;
                    $mySellandruternbilldetail->selltype = 1; //مردودات
                    $mySellandruternbilldetail->buydiscount = $productData->buydiscount;
                    $mySellandruternbilldetail->buydiscounttype = $productData->discounttype;
                    $mySellandruternbilldetail->storeid = $sellbillstoreId;
                    $mySellandruternbilldetail->discounttype = $returndiscounttype;

                    $mySellandruternbilldetailRecord->insert($mySellandruternbilldetail);

                    $productunitData = loadProductUnitWithProductAndUnit($productId, $productunitId);
                    $productnumber = $productunitData->productnumber;
                    $finalquantity = $quantity * $productnumber;

                    //update DON if is Serial
                    if ($parcodeType == "serialnumber") {
                        //update don column (quantity) in productserial table
                        updateSerailQty_ForReturn($productserailId, $finalquantity);
                    }


                    //get storeto productquantity before change
                    $storedetailData = getStoredetailData($sellbillstoreId, $productId);

                    $allStoredetailData = $storedetailData[0];
                    $storedetailId = $storedetailData[1];
                    $productquantityBefore = $storedetailData[2];

                    if (count($allStoredetailData) > 0) {

                        //update productquantity in storedetail
                        $productquantityToAfter = increaseProductQuantity($storedetailId, $productquantityBefore, $finalquantity);


                        //insert in storereport
                        insertStorereportupdate($productId, $sellbillstoreId, $finalquantity, $productquantityBefore, $productquantityToAfter, 0, $sellbillId, "اضافة فاتورة مردودات مبيعات", "sellbillandruternController.php", $sellbillDate);
                    } else {
                        //insert in storedetail tbl
                        insertStoredetailupdate($sellbillstoreId, $productId, $finalquantity, $sellbillDate);


                        //insert in storereport
                        insertStorereportupdate($productId, $sellbillstoreId, $finalquantity, 0, $finalquantity, 0, $sellbillId, "اضافة فاتورة مردودات مبيعات", "sellbillandruternController.php", $sellbillDate);
                    }
                }
            }



            if ($sellbillclientId != 0) {
                //check if sellbilltotaldeptAfter change from sellbilltotaldeptBefor
                //if($sellbilltotaldeptAfter != $sellbilltotaldeptBefor)
                {

                    //update rawmaterialssupplierdebt
                    updateClientDebt($sellbillclientId, $sellbilltotaldeptAfter);

                    if ($sellbilltotalBill < 0) {
                        $sellbillFinalbill = $sellbillFinalbill * -1;
                        insertClientdebtchangeupdate($sellbillclientId, $sellbilltotaldeptBefor, $sellbillFinalbill, 1, "اضافة فاتورة مبيعات ومردودات", $sellbillId, $sellbilltotaldeptAfter, "sellbillandruternController.php", "اضافة فاتورة مبيعات ومردودات", $sellbillAftertotalBill, $sellbillDate);
                    } else {
                        insertClientdebtchangeupdate($sellbillclientId, $sellbilltotaldeptBefor, $sellbillFinalbill, 0, "اضافة فاتورة مبيعات ومردودات", $sellbillId, $sellbilltotaldeptAfter, "sellbillandruternController.php", "اضافة فاتورة مبيعات ومردودات", $sellbillAftertotalBill, $sellbillDate);
                    }
                }
            }


            //check if payed or not to change save value

            if ($sellbilltotalPayed > 0) {
                if ($sellbillAftertotalBill > 0) {

                    //get saveValue before and saveValue after Plus lPayed
                    $saveData = getSaveValueAndPlus($_SESSION['saveid'], $sellbilltotalPayed);
                    $saveId = $saveData[0];
                    $saveValuebefore = $saveData[1];
                    $saveValueafter = $saveData[2];

                    //update save value after add sellbill
                    updateSave($saveId, $saveValueafter);

                    //insert into savedaily tbl from save
                    insertSavedailyupdate($saveValuebefore, $sellbilltotalPayed, 0, $saveId, "اضافة فاتورة مبيعات ومردودات", $sellbillId, $saveValueafter, "sellbillandruternController.php", date("Y-m-d H:i:s"));
                } else {
                    //get saveValue before and saveValue after Plus lPayed
                    $saveData = getSaveValueAndMins($_SESSION['saveid'], $sellbilltotalPayed);
                    $saveId = $saveData[0];
                    $saveValuebefore = $saveData[1];
                    $saveValueafter = $saveData[2];

                    //update save value after add sellbill
                    updateSave($saveId, $saveValueafter);

                    $specialSellbilltotalPayed = $sellbilltotalPayed * -1;

                    //insert into savedaily tbl from save
                    insertSavedailyupdate($saveValuebefore, $specialSellbilltotalPayed, 1, $saveId, "اضافة فاتورة مبيعات ومردودات", $sellbillId, $saveValueafter, "sellbillandruternController.php", date("Y-m-d H:i:s"));
                }
            }
        }






        //مبيعات
        //insert data into Sellbill tbl
        elseif ($sellbillPrice > 0 && $returnsellbillPrice <= 0) {
            $billtype = 1; //مبيعات


            $mySellbill->billnameid = $billnameId;
            $mySellbill->conditions = 0;
            $mySellbill->sellbildirectpayment = $sellbildirectPayment;
            $mySellbill->sellbillaftertotalbill = $sellbillAftertotalBill;
            $mySellbill->sellbillclientid = $sellbillclientId;
            $mySellbill->sellbillclientname = $clientName;
            $mySellbill->sellbilldate = $sellbillDate;
            $mySellbill->sellbilldiscount = $sellbillDiscount;
            $mySellbill->sellbilldiscounttype = $sellbillDiscountType;
            $mySellbill->sellbillfinalbill = $sellbillFinalbill;
            $mySellbill->sellbillsaveid = $_SESSION['saveid'];
            $mySellbill->sellbillserial = $sellbillSerial;
            $mySellbill->sellbillstoreid = $sellbillstoreId;
            $mySellbill->sellbillsysdate = date("Y-m-d H:i:s");
            $mySellbill->sellbilltotalbill = $sellbilltotalBill;
            $mySellbill->sellbilltotaldeptafter = $sellbilltotaldeptAfter;
            $mySellbill->sellbilltotaldeptbefor = $sellbilltotaldeptBefor;
            $mySellbill->sellbilltotalpayed = $sellbilltotalPayed;
            $mySellbill->sellerid = $sellerId;
            $mySellbill->userid = $_SESSION['userid'];
            $mySellbill->tempclientName = $tempClientName;
            $mySellbill->sellQuantity = $sellQuantity;
            $mySellbill->tax = $tax;
            $mySellbill->carnumber = $sellbillcarnumber;
            $mySellbill->cartype = $sellbillcartype;
            $mySellbill->carchase = $sellbillcarchase;
            $mySellbill->carmotor = $sellbillcarmotor;
            $mySellbill->costcenterid = $Costcenterid;

            $sellbillId = $mySellbillRecord->insert($mySellbill);

            $Costcenterdetail->costamount = $sellbillAftertotalBill;
            $Costcenterdetail->costcenterid = $Costcenterid;
            $Costcenterdetail->costdate = date('Y-m-d');
            $Costcenterdetail->del = 0;
            $Costcenterdetail->modelid = $sellbillId;
            $Costcenterdetail->processname = 'فاتوره مبيعات';
            $Costcenterdetail->tablename = 'sellbillController.php';
            $Costcenterdetail->type = '0';
            $Costcenterdetail->uesrid = $_SESSION['userid'];

            if ($Costcenterid != -1 && $Costcenterid != '-1') {
                $CostcenterdetailDAO->insert($Costcenterdetail);
            }




            //insert Sell Data into Sellbilldetail tbl
            $sellbillItr = $_POST['hidden_itr'];
            $h = 1;
            for ($h = 1; $h <= $sellbillItr; $h++) {
                $parcode = $_POST['parcode' . $h . ''];
                $parcodeType = $_POST['parcodeType' . $h . ''];
                $productserailId = $_POST['productserailid' . $h . ''];
                $productId = $_POST['product' . $h . ''];
                $productunitId = $_POST['productunit' . $h . ''];
                $quantity = $_POST['pronum' . $h . ''];
                $price = $_POST['proprice' . $h . ''];
                $discountValue = $_POST['prodis' . $h . ''];
                $totalPrice = $_POST['hidden_prototal' . $h . ''];
                $comment = $_POST['comment' . $h . ''];
                $prstorid = $_POST['prstorid' . $h . ''];
                $discounttype = $_POST['discounttype' . $h . ''];




                if (isset($prstorid) && $prstorid != -1 && $prstorid != '') {

                    //print_r('in if prstorid'.$prstorid.'<br>');

                    $sellbillstoreId = $prstorid;
                } else {
                    $sellbillstoreId = $_POST['storeid'];
                    //print_r('in  else sellbillstoreId'.$sellbillstoreId.'<br>');
                }
                if ($productunitId == "") {
                    $productunitId = 0;
                }
                //print_r('the final'.$sellbillstoreId.'<br>');

                if (isset($productId) && $productId != '-1' && $productId != "") {
                    $productData = loadProductById($productId);


                    $mySellbilldetail->buyprice = $productData->productBuyPrice;
                    $mySellbilldetail->discountvalue = $discountValue;
                    $mySellbilldetail->note = $comment;
                    $mySellbilldetail->parcode = $parcode;
                    $mySellbilldetail->pricetype = $priceType;
                    $mySellbilldetail->productunitid = $productunitId;
                    $mySellbilldetail->sellbilldetailcatid = $productData->productCatId;
                    $mySellbilldetail->sellbilldetaildate = date("Y-m-d h:m:s");
                    $mySellbilldetail->sellbilldetailprice = $price;
                    $mySellbilldetail->sellbilldetailproductid = $productId;
                    $mySellbilldetail->sellbilldetailquantity = $quantity;
                    $mySellbilldetail->sellbilldetailtotalprice = $totalPrice;
                    $mySellbilldetail->sellbillid = $sellbillId;
                    $mySellbilldetail->buydiscount = $productData->buydiscount;
                    $mySellbilldetail->buydiscounttype = $productData->discounttype;
                    $mySellbilldetail->storeid = $sellbillstoreId;
                    $mySellbilldetail->discounttype = $discounttype;

                    $mySellbilldetailRecord->insert($mySellbilldetail);
                    //print("qty: ".$quantity.'<br>');
                    //print("<br>productserailId: ".$productserailId);
                    //update DON if is Serial

                    $productunitData = loadProductUnitWithProductAndUnit($productId, $productunitId);
                    //print_r($productunitData);
                    $productnumber = $productunitData->productnumber;
                    $finalquantity = $quantity * $productnumber;
                    /* 	print("productnumber: ".$productnumber.'<br>');
                      print("quantity: ".$quantity.'<br>');
                      print("finalquantity: ".$finalquantity.'<br>'); */
                    if ($parcodeType == "serialnumber") {
                        //print("<br>serialnumber<br>");
                        //updateSerailDon($productserailId, 1, $sellbillId);
                        updateSerailQty($productserailId, $finalquantity);
                        insertIntoSoldSerialProduct($productserailId, $finalquantity, $sellbillId, 0);
                    }



                    //get store productquantity before change
                    $storedetailData = getStoredetailData($sellbillstoreId, $productId);

                    $allStoredetailData = $storedetailData[0];
                    $storedetailId = $storedetailData[1];
                    $productquantityBefore = $storedetailData[2];

                    //print("qty: ".$finalquantity.'<br>');
                    if (count($allStoredetailData) > 0) {

                        //update productquantity in storedetail
                        $productquantityAfter = decreaseProductQuantity($storedetailId, $productquantityBefore, $finalquantity);

                        //print("productquantityAfter: ".$productquantityAfter.'<br>');
                        //insert in storereport
                        insertStorereportupdate($productId, $sellbillstoreId, $finalquantity, $productquantityBefore, $productquantityAfter, 1, $sellbillId, "اضافة فاتورة مبيعات", "sellbillController.php", $sellbillDate);
                    } else {
                        $specialQuantityAfter = $finalquantity * -1;

                        //insert in storedetail tbl
                        insertStoredetailupdate($sellbillstoreId, $productId, $specialQuantityAfter, $sellbillDate);

                        //insert in storereport
                        insertStorereportupdate($productId, $sellbillstoreId, $finalquantity, 0, $specialQuantityAfter, 1, $sellbillId, "اضافة فاتورة مبيعات", "sellbillController.php", $sellbillDate);
                    }
                }
            }

            if ($sellbillclientId != 0) {
                //check if sellbilltotaldeptAfter change from sellbilltotaldeptBefor
                //if($sellbilltotaldeptAfter != $sellbilltotaldeptBefor)
                {

                    //update rawmaterialssupplierdebt
                    updateClientDebt($sellbillclientId, $sellbilltotaldeptAfter);

                    insertClientdebtchangeupdate($sellbillclientId, $sellbilltotaldeptBefor, $sellbillFinalbill, 0, "اضافة فاتورة مبيعات", $sellbillId, $sellbilltotaldeptAfter, "sellbillController.php", "اضافة فاتورة مبيعات", $sellbillAftertotalBill, $sellbillDate);
                }
            }


            //check if payed or not to change save value

            if ($sellbilltotalPayed > 0) {
                //get saveValue before and saveValue after Plus lPayed
                $saveData = getSaveValueAndPlus($_SESSION['saveid'], $sellbilltotalPayed);
                $saveId = $saveData[0];
                $saveValuebefore = $saveData[1];
                $saveValueafter = $saveData[2];

                //update save value after add sellbill
                updateSave($saveId, $saveValueafter);

                //insert into savedaily tbl from save
                insertSavedailyupdate($saveValuebefore, $sellbilltotalPayed, 0, $saveId, "اضافة فاتورة مبيعات", $sellbillId, $saveValueafter, "sellbillController.php", date("Y-m-d H:i:s"));
            }
        }




        //مردودات مبيعات
        //insert data into returnSellbill tbl
        elseif ($sellbillPrice <= 0 && $returnsellbillPrice > 0) {
            $billtype = 2; //مردودات مبيعات



            $myReturnsellbill->billnameid = $billnameId;
            $myReturnsellbill->conditions = 0;
            $myReturnsellbill->returnsellbildirectpayment = $sellbildirectPayment;
            $myReturnsellbill->returnsellbillaftertotalbill = $sellbillAftertotalBill * -1;
            $myReturnsellbill->returnsellbillclientid = $sellbillclientId;
            $myReturnsellbill->returnsellbillclientname = $clientName;
            $myReturnsellbill->returnsellbilldate = $sellbillDate;
            $myReturnsellbill->returnsellbilldiscount = $sellbillDiscount;
            $myReturnsellbill->returnsellbilldiscounttype = $sellbillDiscountType;

            $sellbillFinalbill = ($sellbillAftertotalBill * -1) - $sellbilltotalPayed;
            $myReturnsellbill->returnsellbillfinalbill = $sellbillFinalbill;
            $myReturnsellbill->returnsellbillsaveid = $_SESSION['saveid'];
            $myReturnsellbill->returnsellbillserial = $sellbillSerial;
            $myReturnsellbill->returnsellbillstoreid = $sellbillstoreId;
            $myReturnsellbill->returnsellbillsysdate = date("Y-m-d h:m:s");
            $myReturnsellbill->returnsellbilltotalbill = $sellbilltotalBill * -1;
            $myReturnsellbill->returnsellbilltotaldeptafter = $sellbilltotaldeptAfter;
            $myReturnsellbill->returnsellbilltotaldeptbefor = $sellbilltotaldeptBefor;
            $myReturnsellbill->returnsellbilltotalpayed = $sellbilltotalPayed;
            $myReturnsellbill->sellerid = $sellerId;
            $myReturnsellbill->userid = $_SESSION['userid'];
            $myReturnsellbill->tempclientName = $tempClientName;
            $myReturnsellbill->returnsellQuantity = $returnsellQuantity;
            $myReturnsellbill->tax = $tax;
            $myReturnsellbill->carnumber = $sellbillcarnumber;
            $myReturnsellbill->cartype = $sellbillcartype;
            $myReturnsellbill->carchase = $sellbillcarchase;
            $myReturnsellbill->carmotor = $sellbillcarmotor;
            $myReturnsellbill->costcenterid = $Costcenterid;



            $returnsellbillId = $myReturnsellbillRecord->insert($myReturnsellbill);

            $Costcenterdetail->costamount = $sellbillAftertotalBill;
            $Costcenterdetail->costcenterid = $Costcenterid;
            $Costcenterdetail->costdate = date('Y-m-d');
            $Costcenterdetail->del = 0;
            $Costcenterdetail->modelid = $returnsellbillId;
            $Costcenterdetail->processname = 'فاتوره مردودات مبيعات';
            $Costcenterdetail->tablename = 'returnsellbillController.php';
            $Costcenterdetail->type = 1;
            $Costcenterdetail->uesrid = $_SESSION['userid'];

            if ($Costcenterid != -1 && $Costcenterid != '-1') {
                $CostcenterdetailDAO->insert($Costcenterdetail);
            }

            //insert Return Data into returnsellbilldetail tbl
            $returnSellbillItr = $_POST['returnhidden_itr'];
            $h = 1;
            for ($h = 1; $h <= $returnSellbillItr; $h++) {
                $parcode = $_POST['returnparcode' . $h . ''];
                $parcodeType = $_POST['returnparcodeType' . $h . ''];
                $productserailId = $_POST['returnproductserailid' . $h . ''];
                $productId = $_POST['returnproduct' . $h . ''];
                $productunitId = $_POST['returnproductunit' . $h . ''];
                $quantity = $_POST['returnpronum' . $h . ''];
                $price = $_POST['returnproprice' . $h . ''];
                $discountValue = $_POST['returnprodis' . $h . ''];
                $totalPrice = $_POST['returnhidden_prototal' . $h . ''];
                $comment = $_POST['returncomment' . $h . ''];
                $returndiscounttype = $_POST['returndiscounttype' . $h . ''];




                $reprstorid = $_POST['reprstorid' . $h . ''];
                if (isset($reprstorid) && $reprstorid != -1 && $reprstorid != '') {

                    $sellbillstoreId = $reprstorid;
                } else {
                    $sellbillstoreId = $_POST['storeid'];
                    //print_r('in  else sellbillstoreId'.$sellbillstoreId.'<br>');
                }

                if ($productunitId == "") {
                    $productunitId = 0;
                }


                if (isset($productId) && $productId != '-1' && $productId != "") {
                    $productData = loadProductById($productId);
                    $productunitData = loadProductUnitWithProductAndUnit($productId, $productunitId);

                    $myReturnsellbilldetail->buyprice = $productData->productBuyPrice;
                    $myReturnsellbilldetail->conditions = 0;
                    $myReturnsellbilldetail->discountvalue = $discountValue;
                    $myReturnsellbilldetail->note = $comment;
                    $myReturnsellbilldetail->parcode = $parcode;
                    $myReturnsellbilldetail->pricetype = $priceType;
                    $myReturnsellbilldetail->productunitid = $productunitId;
                    $myReturnsellbilldetail->returnsellbilldetailcatid = $productData->productCatId;
                    $myReturnsellbilldetail->returnsellbilldetailprice = $price;
                    $myReturnsellbilldetail->returnsellbilldetailproductid = $productId;
                    $myReturnsellbilldetail->returnsellbilldetailquantity = $quantity;
                    $myReturnsellbilldetail->returnsellbilldetailtotalprice = $totalPrice;
                    $myReturnsellbilldetail->returnsellbillid = $returnsellbillId;
                    $myReturnsellbilldetail->buydiscount = $productData->buydiscount;
                    $myReturnsellbilldetail->buydiscounttype = $productData->discounttype;
                    $myReturnsellbilldetail->storeid = $sellbillstoreId;
                    $myReturnsellbilldetail->discounttype = $returndiscounttype;

                    $myReturnsellbilldetailRecord->insert($myReturnsellbilldetail);


                    $productunitData = loadProductUnitWithProductAndUnit($productId, $productunitId);
                    $productnumber = $productunitData->productnumber;
                    $finalquantity = $quantity * $productnumber;

                    //update DON if is Serial
                    if ($parcodeType == "serialnumber") {
                        //updateSerailDon($productserailId, 0, 0);
                        updateSerailQty_ForReturn($productserailId, $finalquantity);
                    }



                    //get storeto productquantity before change
                    $storedetailData = getStoredetailData($sellbillstoreId, $productId);

                    $allStoredetailData = $storedetailData[0];
                    $storedetailId = $storedetailData[1];
                    $productquantityBefore = $storedetailData[2];

                    if (count($allStoredetailData) > 0) {

                        //update productquantity in storedetail
                        $productquantityToAfter = increaseProductQuantity($storedetailId, $productquantityBefore, $finalquantity);


                        //insert in storereport
                        insertStorereportupdate($productId, $sellbillstoreId, $finalquantity, $productquantityBefore, $productquantityToAfter, 0, $returnsellbillId, "اضافة فاتورة مردودات مبيعات", "returnsellbillController.php", $sellbillDate);
                    } else {
                        //insert in storedetail tbl
                        insertStoredetailupdate($sellbillstoreId, $productId, $finalquantity, $sellbillDate);


                        //insert in storereport
                        insertStorereportupdate($productId, $sellbillstoreId, $finalquantity, 0, $finalquantity, 0, $returnsellbillId, "اضافة فاتورة مردودات مبيعات", "returnsellbillController.php", $sellbillDate);
                    }
                }
            }



            if ($sellbillclientId != 0) {
                //check if sellbilltotaldeptAfter change from sellbilltotaldeptBefor
                //if($sellbilltotaldeptAfter != $sellbilltotaldeptBefor)
                {

                    //update rawmaterialssupplierdebt

                    if ($sellbillclientId == 1) {

                    } else {

                    }
                    updateClientDebt($sellbillclientId, $sellbilltotaldeptAfter);

                    insertClientdebtchangeupdate($sellbillclientId, $sellbilltotaldeptBefor, $sellbillFinalbill, 1, "اضافة فاتورة مردوات مبيعات", $returnsellbillId, $sellbilltotaldeptAfter, "returnsellbillController.php", "اضافة فاتورة مردوات مبيعات", $sellbillAftertotalBill, $sellbillDate);
                }
            }


            //check if payed or not to change save value

            if ($sellbilltotalPayed > 0) {

                //get saveValue before and saveValue after mins sellbilltotalPayed
                $saveData = getSaveValueAndMins($_SESSION['saveid'], $sellbilltotalPayed);
                $saveId = $saveData[0];
                $saveValuebefore = $saveData[1];
                $saveValueafter = $saveData[2];

                //update saveFrom value after add transfer
                updateSave($saveId, $saveValueafter);

                //insert into savedaily tbl from savefrom

                $specialSellbilltotalPayed = $sellbilltotalPayed * -1;

                insertSavedailyupdate($saveValuebefore, $specialSellbilltotalPayed, 1, $saveId, "اضافة فاتورة مردوات مبيعات", $returnsellbillId, $saveValueafter, "returnsellbillController.php", date("Y-m-d H:i:s"));
            }
        }
    }

    /* ---------------------------------------------------------------------------------------------------------- */



    return array($sellbillId, $returnsellbillId, $productsBeforeValid, $saveValuebeforeValid, $billtype);
}

function newadd($oldid, $controlname) {
    global $mySellbill;
    global $mySellbillRecord;
    global $mySellbillEx;

    global $mySellbilldetail;
    global $mySellbilldetailRecord;

    global $myReturnsellbill;
    global $myReturnsellbillRecord;
    global $myReturnsellbillEx;

    global $myReturnsellbilldetail;
    global $myReturnsellbilldetailRecord;


    global $mySellbillandrutern;
    global $mySellbillandruternRecord;
    global $mySellbillandruternEx;

    global $mySellandruternbilldetail;
    global $mySellandruternbilldetailRecord;

    global $soldSerialProduct;
    global $soldSerialProductDAO;

    global $ProductunitDAO;
    global $Productunit;
    global $myProductunitEx;

    global $myProductserialEx;

    global $CostcenterdetailDAO;
    global $Costcenterdetail;


    $billnameId = $_POST['billnameid'];

    $settingReturn = $_POST['settingreturn'];
    $settingClient = $_POST['settingclient'];
    $settingStore = $_POST['settingstore'];
    $settingSeller = $_POST['settingseller'];
    $settingParcode = $_POST['settingparcode'];
    $settingDate = $_POST['settingdate'];
    $settingNewproduct = $_POST['settingnewproduct'];
    $settingComment = $_POST['settingcomment'];
    $settingDiscount = $_POST['settingdiscount'];
    $settingQuantityCondition = $_POST['settingquantitycondition'];

    $tempClientName = $_POST['tempclientName'];
    $tax = $_POST["tax"];

    $sellbillcarnumber = $_POST['carNumber'];
    $sellbillcartype = $_POST['carType'];
    $sellbillcarchase = $_POST['carChase'];
    $sellbillcarmotor = $_POST['carMotor'];



    $sellbillclientId = $_POST['supplier'];


    $Costcenterid = $_POST["Costcenter"];

    $clientName = loadClientNameById($sellbillclientId);

    $sellbildirectPayment;
    //client
    if ($settingClient == 0 && $_POST['supplier'] != 1) {
        $sellbildirectPayment = 1;
    } else {
        $sellbildirectPayment = 0;
    }

    //Date
    if ($settingDate == 0) {
        $sellbillDate = $_POST['bn'];
    } else {
        $sellbillDate = date("Y-m-d h:m:s");
    }

    //Store
    if ($settingStore == 0) {
        $sellbillstoreId = 1; //;
    } else {
        $sellbillstoreId = 1; //;
    }

    //seller
    if ($settingSeller == 0) {
        $sellerId = $_POST['sellerid'];
        if ($sellerId == "-1" || $sellerId == "" || $sellerId == NULL) {
            $sellerId = 0;
        }
    } else {
        $sellerId = 0;
    }

    $sellbillSerial = $_POST['bns'];
    $priceType = $_POST['hiddenpricetype'];

    $sellbilltotalBill = $_POST['sellbilltotalbill']; //اجمالى الفاتورة قبل الخصم
    $sellbillDiscountType = $_POST['distype']; //نوع الخصم

    $sellbillDiscount = $_POST['gendis']; //قيمة الخصم
    $sellbillAftertotalBill = $_POST['sellbillaftertotalbill']; //القيمة بعد الخصم
    $sellbilltotalPayed = $_POST['genpay']; //المدفوع
    $sellbillFinalbill = $sellbillAftertotalBill - $sellbilltotalPayed; //المتبقى

    $sellbillPrice = $_POST['sellbillprice']; //اجمالى المبيعات
    $returnsellbillPrice = $_POST['returnsellbillprice']; //اجمالى مردودات المبيعات

    $sellQuantity = $_POST['sellQuantity'];
    $returnsellQuantity = $_POST['returnsellQuantity'];



    $clientdata = loadClientDataById($sellbillclientId);
    $sellbilltotaldeptBefor = $clientdata->clientdebt; //$_POST['hidden_debt'];
    $sellbilltotaldeptAfter = $sellbilltotaldeptBefor + ($sellbillAftertotalBill - $sellbilltotalPayed); //المتبقى$_POST['clientdebtafter'];




    $productsBeforeValid = 1;
    $saveValuebeforeValid = 1;

    //////////////////////////////////////////////////////////////////////////

    $sellbillItr = $_POST['hidden_itr'];
    $returnSellbillItr = $_POST['returnhidden_itr'];

    //check storerdetail value
    //check product quantity
    if ($sellbillPrice > 0) {
        $h = 1;
        for ($h = 1; $h <= $sellbillItr; $h++) {
            $productId = $_POST['product' . $h . ''];
            $productQuantity = $_POST['pronum' . $h . ''];

            if (isset($productId) && $productId != '-1' && $productId != "") {
                //get storefrom productquantity before change
                $storedetailData = getStoredetailData($sellbillstoreId, $productId);

                $allStoredetailData = $storedetailData[0];
                $storedetailId = $storedetailData[1];
                $productquantityBefore = $storedetailData[2];

                //check if productquantityFromBefore greater than 0 or not
                $productsBeforeValid = 1;
                if ($productquantityBefore > 0 && count($allStoredetailData) > 0) {
                    $productsAfterValid = $productquantityBefore - $productQuantity;

                    if ($productsAfterValid >= 0) {
                        $productsBeforeValid = 1;
                    } else {
                        $productsBeforeValid = 0;
                        //return $productsBeforeValid;
                    }
                } else {
                    $productsBeforeValid = 0;
                    //return $productsBeforeValid;
                }
            }
        }
    }




    /////////////////check savefrom value before transfer//////////////////////

    if ($returnsellbillPrice > 0 && ($sellbillPrice <= 0 || $sellbillAftertotalBill)) {
        $saveValueafterValid;

        //get save value
        $saveValueBefore = getSaveValueBefore($_SESSION['saveid']);

        $saveValueafterValid = $saveValueBefore - $sellbilltotalPayed;

        if ($saveValueafterValid >= 0) {
            $saveValuebeforeValid = 1;
        } else {
            $saveValuebeforeValid = 0;
            //return $saveValuebeforeValid;
        }
    }


    $billtype;
    // مبيعات و ومردودات
    //insert data into Sellbillandrutern tbl
    if ($sellbillPrice > 0 && $returnsellbillPrice > 0) {
        $billtype = 3; // مبيعات و ومردودات


        $mySellbillandrutern->deletedsellid = $oldid;
        $mySellbillandrutern->controlname = $controlname;


        $mySellbillandrutern->billnameid = $billnameId;
        $mySellbillandrutern->conditions = 0;
        $mySellbillandrutern->sellbildirectpayment = $sellbildirectPayment;
        $mySellbillandrutern->sellbillaftertotalbill = $sellbillAftertotalBill;
        $mySellbillandrutern->sellbillclientid = $sellbillclientId;
        $mySellbillandrutern->sellbillclientname = $clientName;
        $mySellbillandrutern->sellbilldate = $sellbillDate;
        $mySellbillandrutern->sellbilldiscount = $sellbillDiscount;
        $mySellbillandrutern->sellbilldiscounttype = $sellbillDiscountType;
        $mySellbillandrutern->tempclientName = $tempClientName;
        $mySellbillandrutern->sellQuantity = $sellQuantity;
        $mySellbillandrutern->returnsellQuantity = $returnsellQuantity;
        $mySellbillandrutern->tax = $tax;

        if ($sellbilltotalBill < 0) {
            $sellbillFinalbill = $sellbillAftertotalBill + $sellbilltotalPayed;
        }
        $mySellbillandrutern->sellbillfinalbill = $sellbillFinalbill;
        $mySellbillandrutern->sellbillsaveid = $_SESSION['saveid'];
        $mySellbillandrutern->sellbillserial = $sellbillSerial;
        $mySellbillandrutern->sellbillstoreid = $sellbillstoreId;
        $mySellbillandrutern->sellbillsysdate = date("Y-m-d H:i:s");
        $mySellbillandrutern->sellbilltotalbill = $sellbilltotalBill;
        $mySellbillandrutern->sellbilltotaldeptafter = $sellbilltotaldeptAfter;
        $mySellbillandrutern->sellbilltotaldeptbefor = $sellbilltotaldeptBefor;
        $mySellbillandrutern->sellbilltotalpayed = $sellbilltotalPayed;
        $mySellbillandrutern->sellerid = $sellerId;
        $mySellbillandrutern->userid = $_SESSION['userid'];
        $mySellbillandrutern->sellbillprice = $sellbillPrice;
        $mySellbillandrutern->returnsellbillprice = $returnsellbillPrice;
        $mySellbillandrutern->carnumber = $sellbillcarnumber;
        $mySellbillandrutern->cartype = $sellbillcartype;
        $mySellbillandrutern->carchase = $sellbillcarchase;
        $mySellbillandrutern->carmotor = $sellbillcarmotor;
        $mySellbillandrutern->costcenterid = $Costcenterid;



        $sellbillId = $mySellbillandruternEx->insertupdate($mySellbillandrutern);
        $Costcenterdetail->costamount = $sellbillAftertotalBill;
        $Costcenterdetail->costcenterid = $Costcenterid;
        $Costcenterdetail->costdate = date('Y-m-d');
        $Costcenterdetail->del = 0;
        $Costcenterdetail->modelid = $sellbillId;
        $Costcenterdetail->processname = 'فاتوره مبيعات ومردودات';
        $Costcenterdetail->tablename = 'sellbillandruternController.php';
        $Costcenterdetail->type = 2;
        $Costcenterdetail->uesrid = $_SESSION['userid'];

        if ($Costcenterid != -1 && $Costcenterid != '-1') {
            $CostcenterdetailDAO->insert($Costcenterdetail);
        }


        //insert Sell Data into Sellandruternbilldetail tbl
        $sellbillItr = $_POST['hidden_itr'];
        $h = 1;
        for ($h = 1; $h <= $sellbillItr; $h++) {
            $parcode = $_POST['parcode' . $h . ''];
            $parcodeType = $_POST['parcodeType' . $h . ''];
            $productserailId = $_POST['productserailid' . $h . ''];
            $productId = $_POST['product' . $h . ''];
            $productunitId = $_POST['productunit' . $h . ''];
            $quantity = $_POST['pronum' . $h . ''];
            $price = $_POST['proprice' . $h . ''];
            $discountValue = $_POST['prodis' . $h . ''];
            $discounttype = $_POST['discounttype' . $h . ''];
            $totalPrice = $_POST['hidden_prototal' . $h . ''];
            $comment = $_POST['comment' . $h . ''];
            $prstorid = $_POST['prstorid' . $h . ''];

            if (isset($prstorid) && $prstorid != -1 && $prstorid != '') {

                $sellbillstoreId = $prstorid;
            } else {
                $sellbillstoreId = 1; //;
                //print_r('in  else sellbillstoreId'.$sellbillstoreId.'<br>');
            }

            if ($productunitId == "") {
                $productunitId = 0;
            }



            if (isset($productId) && $productId != '-1' && $productId != "") {


                $productData = loadProductById($productId);


                $mySellandruternbilldetail->buyprice = $productData->productBuyPrice;
                $mySellandruternbilldetail->discountvalue = $discountValue;
                $mySellandruternbilldetail->note = $comment;
                $mySellandruternbilldetail->parcode = $parcode;
                $mySellandruternbilldetail->pricetype = $priceType;
                $mySellandruternbilldetail->productunitid = $productunitId;
                $mySellandruternbilldetail->sellbilldetailcatid = $productData->productCatId;
                $mySellandruternbilldetail->sellbilldetaildate = $sellbillDate; //date("Y-m-d h:m:s");
                $mySellandruternbilldetail->sellbilldetailprice = $price;
                $mySellandruternbilldetail->sellbilldetailproductid = $productId;
                $mySellandruternbilldetail->sellbilldetailquantity = $quantity;
                $mySellandruternbilldetail->sellbilldetailtotalprice = $totalPrice;
                $mySellandruternbilldetail->sellbillid = $sellbillId;
                $mySellandruternbilldetail->selltype = 0; //مبيعات
                $mySellandruternbilldetail->buydiscount = $productData->buydiscount;
                $mySellandruternbilldetail->buydiscounttype = $productData->discounttype;
                $mySellandruternbilldetail->storeid = $sellbillstoreId;
                $mySellandruternbilldetail->discounttype = $discounttype;


                $mySellandruternbilldetailRecord->insert($mySellandruternbilldetail);


                $productunitData = loadProductUnitWithProductAndUnit($productId, $productunitId);
                $productnumber = $productunitData->productnumber;
                $finalquantity = $quantity * $productnumber;
                //update DON if is Serial
                if ($parcodeType == "serialnumber") {
                    //update don column (quantity) in productserial table
                    updateSerailQty($productserailId, $finalquantity);
                    insertIntoSoldSerialProduct($productserailId, $finalquantity, $sellbillId, 1);
                }



                //get store productquantity before change
                $storedetailData = getStoredetailData($sellbillstoreId, $productId);

                $allStoredetailData = $storedetailData[0];
                $storedetailId = $storedetailData[1];
                $productquantityBefore = $storedetailData[2];



                if (count($allStoredetailData) > 0) {

                    //update productquantity in storedetail
                    $productquantityAfter = decreaseProductQuantity($storedetailId, $productquantityBefore, $finalquantity);


                    //insert in storereport
                    insertStorereportupdate($productId, $sellbillstoreId, $finalquantity, $productquantityBefore, $productquantityAfter, 1, $sellbillId, "اضافة فاتورة مبيعات (معدله)", "sellbillandruternController.php", $sellbillDate);
                } else {
                    $specialQuantityAfter = $finalquantity * -1;

                    //insert in storedetail tbl
                    insertStoredetailupdate($sellbillstoreId, $productId, $specialQuantityAfter, $sellbillDate);

                    //insert in storereport
                    insertStorereportupdate($productId, $sellbillstoreId, $finalquantity, 0, $specialQuantityAfter, 1, $sellbillId, "اضافة فاتورة مبيعات (معدله)", "sellbillandruternController.php", $sellbillDate);
                }
            }
        }



        //insert Return Data into Sellandruternbilldetail tbl
        $returnSellbillItr = $_POST['returnhidden_itr'];
        $h = 1;
        for ($h = 1; $h <= $returnSellbillItr; $h++) {
            $parcode = $_POST['returnparcode' . $h . ''];
            $parcodeType = $_POST['returnparcodeType' . $h . ''];
            $productserailId = $_POST['returnproductserailid' . $h . ''];
            $productId = $_POST['returnproduct' . $h . ''];
            $productunitId = $_POST['returnproductunit' . $h . ''];
            $quantity = $_POST['returnpronum' . $h . ''];
            $price = $_POST['returnproprice' . $h . ''];
            $discountValue = $_POST['returnprodis' . $h . ''];
            $totalPrice = $_POST['returnhidden_prototal' . $h . ''];
            $comment = $_POST['returncomment' . $h . ''];
            $reprstorid = $_POST['reprstorid' . $h . ''];
            $returndiscounttype = $_POST['returndiscounttype' . $h . ''];

            if (isset($reprstorid) && $reprstorid != -1 && $reprstorid != '') {

                $sellbillstoreId = $reprstorid;
            } else {
                $sellbillstoreId = 1; //;
                //print_r('in  else sellbillstoreId'.$sellbillstoreId.'<br>');
            }
            if ($productunitId == "") {
                $productunitId = 0;
            }

            if (isset($productId) && $productId != '-1' && $productId != "") {
                $productData = loadProductById($productId);


                $mySellandruternbilldetail->buyprice = $productData->productBuyPrice;
                $mySellandruternbilldetail->discountvalue = $discountValue;
                $mySellandruternbilldetail->note = $comment;
                $mySellandruternbilldetail->parcode = $parcode;
                $mySellandruternbilldetail->pricetype = $priceType;
                $mySellandruternbilldetail->productunitid = $productunitId;
                $mySellandruternbilldetail->sellbilldetailcatid = $productData->productCatId;
                $mySellandruternbilldetail->sellbilldetaildate = date("Y-m-d h:m:s");
                $mySellandruternbilldetail->sellbilldetailprice = $price;
                $mySellandruternbilldetail->sellbilldetailproductid = $productId;
                $mySellandruternbilldetail->sellbilldetailquantity = $quantity;
                $mySellandruternbilldetail->sellbilldetailtotalprice = $totalPrice;
                $mySellandruternbilldetail->sellbillid = $sellbillId;
                $mySellandruternbilldetail->selltype = 1; //مردودات
                $mySellandruternbilldetail->buydiscount = $productData->buydiscount;
                $mySellandruternbilldetail->buydiscounttype = $productData->discounttype;
                $mySellandruternbilldetail->storeid = $sellbillstoreId;
                $mySellandruternbilldetail->discounttype = $returndiscounttype;

                $mySellandruternbilldetailRecord->insert($mySellandruternbilldetail);

                $productunitData = loadProductUnitWithProductAndUnit($productId, $productunitId);
                $productnumber = $productunitData->productnumber;
                $finalquantity = $quantity * $productnumber;

                //update DON if is Serial
                if ($parcodeType == "serialnumber") {
                    //update don column (quantity) in productserial table
                    updateSerailQty_ForReturn($productserailId, $finalquantity);
                }


                //get storeto productquantity before change
                $storedetailData = getStoredetailData($sellbillstoreId, $productId);

                $allStoredetailData = $storedetailData[0];
                $storedetailId = $storedetailData[1];
                $productquantityBefore = $storedetailData[2];

                if (count($allStoredetailData) > 0) {

                    //update productquantity in storedetail
                    $productquantityToAfter = increaseProductQuantity($storedetailId, $productquantityBefore, $finalquantity);


                    //insert in storereport
                    insertStorereportupdate($productId, $sellbillstoreId, $finalquantity, $productquantityBefore, $productquantityToAfter, 0, $sellbillId, "اضافة فاتورة مردودات مبيعات (معدله)", "sellbillandruternController.php", $sellbillDate);
                } else {
                    //insert in storedetail tbl
                    insertStoredetailupdate($sellbillstoreId, $productId, $finalquantity, $sellbillDate);


                    //insert in storereport
                    insertStorereportupdate($productId, $sellbillstoreId, $finalquantity, 0, $finalquantity, 0, $sellbillId, "اضافة فاتورة مردودات مبيعات (معدله)", "sellbillandruternController.php", $sellbillDate);
                }
            }
        }



        if ($sellbillclientId != 0) {
            //check if sellbilltotaldeptAfter change from sellbilltotaldeptBefor
            //if($sellbilltotaldeptAfter != $sellbilltotaldeptBefor)
            {

                //update rawmaterialssupplierdebt
                updateClientDebt($sellbillclientId, $sellbilltotaldeptAfter);

                if ($sellbilltotalBill < 0) {
                    $sellbillFinalbill = $sellbillFinalbill * -1;
                    insertClientdebtchangeupdate($sellbillclientId, $sellbilltotaldeptBefor, $sellbillFinalbill, 1, "اضافة فاتورة مبيعات ومردودات", $sellbillId, $sellbilltotaldeptAfter, "sellbillandruternController.php", "اضافة فاتورة مبيعات ومردودات (معدله)", $sellbillAftertotalBill, $sellbillDate);
                } else {
                    insertClientdebtchangeupdate($sellbillclientId, $sellbilltotaldeptBefor, $sellbillFinalbill, 0, "اضافة فاتورة مبيعات ومردودات", $sellbillId, $sellbilltotaldeptAfter, "sellbillandruternController.php", "اضافة فاتورة مبيعات ومردودات (معدله)", $sellbillAftertotalBill, $sellbillDate);
                }
            }
        }


        //check if payed or not to change save value

        if ($sellbilltotalPayed > 0) {
            if ($sellbillAftertotalBill > 0) {

                //get saveValue before and saveValue after Plus lPayed
                $saveData = getSaveValueAndPlus($_SESSION['saveid'], $sellbilltotalPayed);
                $saveId = $saveData[0];
                $saveValuebefore = $saveData[1];
                $saveValueafter = $saveData[2];

                //update save value after add sellbill
                updateSave($saveId, $saveValueafter);

                //insert into savedaily tbl from save
                insertSavedailyupdate($saveValuebefore, $sellbilltotalPayed, 0, $saveId, "اضافة فاتورة مبيعات ومردودات (معدله)", $sellbillId, $saveValueafter, "sellbillandruternController.php", date("Y-m-d H:i:s"));
            } else {
                //get saveValue before and saveValue after Plus lPayed
                $saveData = getSaveValueAndMins($_SESSION['saveid'], $sellbilltotalPayed);
                $saveId = $saveData[0];
                $saveValuebefore = $saveData[1];
                $saveValueafter = $saveData[2];

                //update save value after add sellbill
                updateSave($saveId, $saveValueafter);

                $specialSellbilltotalPayed = $sellbilltotalPayed * -1;

                //insert into savedaily tbl from save
                insertSavedailyupdate($saveValuebefore, $specialSellbilltotalPayed, 1, $saveId, "اضافة فاتورة مبيعات ومردودات (معدله)", $sellbillId, $saveValueafter, "sellbillandruternController.php", date("Y-m-d H:i:s"));
            }
        }
    }






    //مبيعات
    //insert data into Sellbill tbl
    elseif ($sellbillPrice > 0 && $returnsellbillPrice <= 0) {
        $billtype = 1; //مبيعات


        $mySellbill->billnameid = $billnameId;
        $mySellbill->conditions = 0;
        $mySellbill->sellbildirectpayment = $sellbildirectPayment;
        $mySellbill->sellbillaftertotalbill = $sellbillAftertotalBill;
        $mySellbill->sellbillclientid = $sellbillclientId;
        $mySellbill->sellbillclientname = $clientName;
        $mySellbill->sellbilldate = $sellbillDate;
        $mySellbill->sellbilldiscount = $sellbillDiscount;
        $mySellbill->sellbilldiscounttype = $sellbillDiscountType;
        $mySellbill->sellbillfinalbill = $sellbillFinalbill;
        $mySellbill->sellbillsaveid = $_SESSION['saveid'];
        $mySellbill->sellbillserial = $sellbillSerial;
        $mySellbill->sellbillstoreid = $sellbillstoreId;
        $mySellbill->sellbillsysdate = date("Y-m-d H:i:s");
        $mySellbill->sellbilltotalbill = $sellbilltotalBill;
        $mySellbill->sellbilltotaldeptafter = $sellbilltotaldeptAfter;
        $mySellbill->sellbilltotaldeptbefor = $sellbilltotaldeptBefor;
        $mySellbill->sellbilltotalpayed = $sellbilltotalPayed;
        $mySellbill->sellerid = $sellerId;
        $mySellbill->userid = $_SESSION['userid'];
        $mySellbill->tempclientName = $tempClientName;
        $mySellbill->sellQuantity = $sellQuantity;
        $mySellbill->tax = $tax;
        $mySellbill->carnumber = $sellbillcarnumber;
        $mySellbill->cartype = $sellbillcartype;
        $mySellbill->carchase = $sellbillcarchase;
        $mySellbill->carmotor = $sellbillcarmotor;



        $mySellbill->deletedsellid = $oldid;
        $mySellbill->controlname = $controlname;
        $mySellbill->costcenterid = $Costcenterid;


        $sellbillId = $mySellbillEx->insertupdate($mySellbill);

        $Costcenterdetail->costamount = $sellbillAftertotalBill;
        $Costcenterdetail->costcenterid = $Costcenterid;
        $Costcenterdetail->costdate = date('Y-m-d');
        $Costcenterdetail->del = 0;
        $Costcenterdetail->modelid = $sellbillId;
        $Costcenterdetail->processname = 'فاتوره مبيعات';
        $Costcenterdetail->tablename = 'sellbillController.php';
        $Costcenterdetail->type = 0;
        $Costcenterdetail->uesrid = $_SESSION['userid'];

        if ($Costcenterid != -1 && $Costcenterid != '-1') {
            $CostcenterdetailDAO->insert($Costcenterdetail);
        }



        //insert Sell Data into Sellbilldetail tbl
        $sellbillItr = $_POST['hidden_itr'];
        $h = 1;
        for ($h = 1; $h <= $sellbillItr; $h++) {
            $parcode = $_POST['parcode' . $h . ''];
            $parcodeType = $_POST['parcodeType' . $h . ''];
            $productserailId = $_POST['productserailid' . $h . ''];
            $productId = $_POST['product' . $h . ''];
            $productunitId = $_POST['productunit' . $h . ''];
            $quantity = $_POST['pronum' . $h . ''];
            $price = $_POST['proprice' . $h . ''];
            $discountValue = $_POST['prodis' . $h . ''];
            $totalPrice = $_POST['hidden_prototal' . $h . ''];
            $comment = $_POST['comment' . $h . ''];
            $prstorid = $_POST['prstorid' . $h . ''];
            $discounttype = $_POST['discounttype' . $h . ''];

            if (isset($prstorid) && $prstorid != -1 && $prstorid != '') {

                //print_r('in if prstorid'.$prstorid.'<br>');

                $sellbillstoreId = $prstorid;
            } else {
                $sellbillstoreId = 1; //;
                //print_r('in  else sellbillstoreId'.$sellbillstoreId.'<br>');
            }
            if ($productunitId == "") {
                $productunitId = 0;
            }
            //print_r('the final'.$sellbillstoreId.'<br>');

            if (isset($productId) && $productId != '-1' && $productId != "") {
                $productData = loadProductById($productId);


                $mySellbilldetail->buyprice = $productData->productBuyPrice;
                $mySellbilldetail->discountvalue = $discountValue;
                $mySellbilldetail->note = $comment;
                $mySellbilldetail->parcode = $parcode;
                $mySellbilldetail->pricetype = $priceType;
                $mySellbilldetail->productunitid = $productunitId;
                $mySellbilldetail->sellbilldetailcatid = $productData->productCatId;
                $mySellbilldetail->sellbilldetaildate = $sellbillDate; //date("Y-m-d h:m:s");
                $mySellbilldetail->sellbilldetailprice = $price;
                $mySellbilldetail->sellbilldetailproductid = $productId;
                $mySellbilldetail->sellbilldetailquantity = $quantity;
                $mySellbilldetail->sellbilldetailtotalprice = $totalPrice;
                $mySellbilldetail->sellbillid = $sellbillId;
                $mySellbilldetail->buydiscount = $productData->buydiscount;
                $mySellbilldetail->buydiscounttype = $productData->discounttype;
                $mySellbilldetail->storeid = $sellbillstoreId;
                $mySellbilldetail->discounttype = $discounttype;


                $mySellbilldetailRecord->insert($mySellbilldetail);
                //print("qty: ".$quantity.'<br>');
                //print("<br>productserailId: ".$productserailId);
                //update DON if is Serial

                $productunitData = loadProductUnitWithProductAndUnit($productId, $productunitId);
                //print_r($productunitData);
                $productnumber = $productunitData->productnumber;
                $finalquantity = $quantity * $productnumber;
                /* 	print("productnumber: ".$productnumber.'<br>');
                  print("quantity: ".$quantity.'<br>');
                  print("finalquantity: ".$finalquantity.'<br>'); */
                if ($parcodeType == "serialnumber") {
                    //print("<br>serialnumber<br>");
                    //updateSerailDon($productserailId, 1, $sellbillId);
                    updateSerailQty($productserailId, $finalquantity);
                    insertIntoSoldSerialProduct($productserailId, $finalquantity, $sellbillId, 0);
                }



                //get store productquantity before change
                $storedetailData = getStoredetailData($sellbillstoreId, $productId);

                $allStoredetailData = $storedetailData[0];
                $storedetailId = $storedetailData[1];
                $productquantityBefore = $storedetailData[2];

                //print("qty: ".$finalquantity.'<br>');
                if (count($allStoredetailData) > 0) {

                    //update productquantity in storedetail
                    $productquantityAfter = decreaseProductQuantity($storedetailId, $productquantityBefore, $finalquantity);

                    //print("productquantityAfter: ".$productquantityAfter.'<br>');
                    //insert in storereport
                    insertStorereportupdate($productId, $sellbillstoreId, $finalquantity, $productquantityBefore, $productquantityAfter, 1, $sellbillId, "اضافة فاتورة مبيعات (معدله)", "sellbillController.php", $sellbillDate);
                } else {
                    $specialQuantityAfter = $finalquantity * -1;

                    //insert in storedetail tbl
                    insertStoredetailupdate($sellbillstoreId, $productId, $specialQuantityAfter, $sellbillDate);

                    //insert in storereport
                    insertStorereportupdate($productId, $sellbillstoreId, $finalquantity, 0, $specialQuantityAfter, 1, $sellbillId, "اضافة فاتورة مبيعات (معدله)", "sellbillController.php", $sellbillDate);
                }
            }
        }

        if ($sellbillclientId != 0) {
            //check if sellbilltotaldeptAfter change from sellbilltotaldeptBefor
            //if($sellbilltotaldeptAfter != $sellbilltotaldeptBefor)
            {

                //update rawmaterialssupplierdebt
                updateClientDebt($sellbillclientId, $sellbilltotaldeptAfter);

                insertClientdebtchangeupdate($sellbillclientId, $sellbilltotaldeptBefor, $sellbillFinalbill, 0, "اضافة فاتورة مبيعات (معدله)", $sellbillId, $sellbilltotaldeptAfter, "sellbillController.php", "اضافة فاتورة مبيعات (معدله)", $sellbillAftertotalBill, $sellbillDate);
            }
        }


        //check if payed or not to change save value

        if ($sellbilltotalPayed > 0) {
            //get saveValue before and saveValue after Plus lPayed
            $saveData = getSaveValueAndPlus($_SESSION['saveid'], $sellbilltotalPayed);
            $saveId = $saveData[0];
            $saveValuebefore = $saveData[1];
            $saveValueafter = $saveData[2];

            //update save value after add sellbill
            updateSave($saveId, $saveValueafter);

            //insert into savedaily tbl from save
            insertSavedailyupdate($saveValuebefore, $sellbilltotalPayed, 0, $saveId, "اضافة فاتورة مبيعات (معدله)", $sellbillId, $saveValueafter, "sellbillController.php", date("Y-m-d H:i:s"));
        }
    }





    //مردودات مبيعات
    //insert data into returnSellbill tbl
    elseif ($sellbillPrice <= 0 && $returnsellbillPrice > 0) {
        $billtype = 2; //مردودات مبيعات



        $myReturnsellbill->billnameid = $billnameId;
        $myReturnsellbill->conditions = 0;
        $myReturnsellbill->returnsellbildirectpayment = $sellbildirectPayment;
        $myReturnsellbill->returnsellbillaftertotalbill = $sellbillAftertotalBill * -1;
        $myReturnsellbill->returnsellbillclientid = $sellbillclientId;
        $myReturnsellbill->returnsellbillclientname = $clientName;
        $myReturnsellbill->returnsellbilldate = $sellbillDate;
        $myReturnsellbill->returnsellbilldiscount = $sellbillDiscount;
        $myReturnsellbill->returnsellbilldiscounttype = $sellbillDiscountType;
        $myReturnsellbill->tax = $tax;

        $sellbillFinalbill = ($sellbillAftertotalBill * -1) - $sellbilltotalPayed;
        $myReturnsellbill->returnsellbillfinalbill = $sellbillFinalbill;
        $myReturnsellbill->returnsellbillsaveid = $_SESSION['saveid'];
        $myReturnsellbill->returnsellbillserial = $sellbillSerial;
        $myReturnsellbill->returnsellbillstoreid = $sellbillstoreId;
        $myReturnsellbill->returnsellbillsysdate = date("Y-m-d h:m:s");
        $myReturnsellbill->returnsellbilltotalbill = $sellbilltotalBill * -1;
        $myReturnsellbill->returnsellbilltotaldeptafter = $sellbilltotaldeptAfter;
        $myReturnsellbill->returnsellbilltotaldeptbefor = $sellbilltotaldeptBefor;
        $myReturnsellbill->returnsellbilltotalpayed = $sellbilltotalPayed;
        $myReturnsellbill->sellerid = $sellerId;
        $myReturnsellbill->userid = $_SESSION['userid'];
        $myReturnsellbill->tempclientName = $tempClientName;
        $myReturnsellbill->returnsellQuantity = $returnsellQuantity;

        $myReturnsellbill->deletedsellid = $oldid;
        $myReturnsellbill->controlname = $controlname;
        $mySellbill->carnumber = $sellbillcarnumber;
        $myReturnsellbill->cartype = $sellbillcartype;
        $myReturnsellbill->carchase = $sellbillcarchase;
        $myReturnsellbill->carmotor = $sellbillcarmotor;
        $myReturnsellbill->costcenterid = $Costcenterid;


        $returnsellbillId = $myReturnsellbillEx->insertupdate($myReturnsellbill);

        $Costcenterdetail->costamount = $sellbillAftertotalBill;
        $Costcenterdetail->costcenterid = $Costcenterid;
        $Costcenterdetail->costdate = date('Y-m-d');
        $Costcenterdetail->del = 0;
        $Costcenterdetail->modelid = $returnsellbillId;
        $Costcenterdetail->processname = 'فاتوره مردودات مبيعات';
        $Costcenterdetail->tablename = 'returnsellbillController.php';
        $Costcenterdetail->type = 0;
        $Costcenterdetail->uesrid = $_SESSION['userid'];

        if ($Costcenterid != -1 && $Costcenterid != '-1') {
            $CostcenterdetailDAO->insert($Costcenterdetail);
        }


        //insert Return Data into returnsellbilldetail tbl
        $returnSellbillItr = $_POST['returnhidden_itr'];
        $h = 1;
        for ($h = 1; $h <= $returnSellbillItr; $h++) {
            $parcode = $_POST['returnparcode' . $h . ''];
            $parcodeType = $_POST['returnparcodeType' . $h . ''];
            $productserailId = $_POST['returnproductserailid' . $h . ''];
            $productId = $_POST['returnproduct' . $h . ''];
            $productunitId = $_POST['returnproductunit' . $h . ''];
            $quantity = $_POST['returnpronum' . $h . ''];
            $price = $_POST['returnproprice' . $h . ''];
            $discountValue = $_POST['returnprodis' . $h . ''];
            $totalPrice = $_POST['returnhidden_prototal' . $h . ''];
            $comment = $_POST['returncomment' . $h . ''];
            $returndiscounttype = $_POST['returndiscounttype' . $h . ''];


            $reprstorid = $_POST['reprstorid' . $h . ''];
            if (isset($reprstorid) && $reprstorid != -1 && $reprstorid != '') {

                $sellbillstoreId = $reprstorid;
            } else {
                $sellbillstoreId = 1; //;
                //print_r('in  else sellbillstoreId'.$sellbillstoreId.'<br>');
            }

            if ($productunitId == "") {
                $productunitId = 0;
            }


            if (isset($productId) && $productId != '-1' && $productId != "") {
                $productData = loadProductById($productId);
                $productunitData = loadProductUnitWithProductAndUnit($productId, $productunitId);

                $myReturnsellbilldetail->buyprice = $productData->productBuyPrice;
                $myReturnsellbilldetail->conditions = 0;
                $myReturnsellbilldetail->discountvalue = $discountValue;
                $myReturnsellbilldetail->note = $comment;
                $myReturnsellbilldetail->parcode = $parcode;
                $myReturnsellbilldetail->pricetype = $priceType;
                $myReturnsellbilldetail->productunitid = $productunitId;
                $myReturnsellbilldetail->returnsellbilldetailcatid = $productData->productCatId;
                $myReturnsellbilldetail->returnsellbilldetailprice = $price;
                $myReturnsellbilldetail->returnsellbilldetailproductid = $productId;
                $myReturnsellbilldetail->returnsellbilldetailquantity = $quantity;
                $myReturnsellbilldetail->returnsellbilldetailtotalprice = $totalPrice;
                $myReturnsellbilldetail->returnsellbillid = $returnsellbillId;
                $myReturnsellbilldetail->buydiscount = $productData->buydiscount;
                $myReturnsellbilldetail->buydiscounttype = $productData->discounttype;
                $myReturnsellbilldetail->storeid = $sellbillstoreId;
                $myReturnsellbilldetail->discounttype = $returndiscounttype;


                $myReturnsellbilldetailRecord->insert($myReturnsellbilldetail);


                $productunitData = loadProductUnitWithProductAndUnit($productId, $productunitId);
                $productnumber = $productunitData->productnumber;
                $finalquantity = $quantity * $productnumber;

                //update DON if is Serial
                if ($parcodeType == "serialnumber") {
                    //updateSerailDon($productserailId, 0, 0);
                    updateSerailQty_ForReturn($productserailId, $finalquantity);
                }



                //get storeto productquantity before change
                $storedetailData = getStoredetailData($sellbillstoreId, $productId);

                $allStoredetailData = $storedetailData[0];
                $storedetailId = $storedetailData[1];
                $productquantityBefore = $storedetailData[2];

                if (count($allStoredetailData) > 0) {

                    //update productquantity in storedetail
                    $productquantityToAfter = increaseProductQuantity($storedetailId, $productquantityBefore, $finalquantity);


                    //insert in storereport
                    insertStorereportupdate($productId, $sellbillstoreId, $finalquantity, $productquantityBefore, $productquantityToAfter, 0, $returnsellbillId, "اضافة فاتورة مردودات مبيعات (معدله)", "returnsellbillController.php", $sellbillDate);
                } else {
                    //insert in storedetail tbl
                    insertStoredetailupdate($sellbillstoreId, $productId, $finalquantity, $sellbillDate);


                    //insert in storereport
                    insertStorereportupdate($productId, $sellbillstoreId, $finalquantity, 0, $finalquantity, 0, $returnsellbillId, "اضافة فاتورة مردودات مبيعات (معدله)", "returnsellbillController.php", $sellbillDate);
                }
            }
        }



        if ($sellbillclientId != 0) {
            //check if sellbilltotaldeptAfter change from sellbilltotaldeptBefor
            //if($sellbilltotaldeptAfter != $sellbilltotaldeptBefor)
            {

                //update rawmaterialssupplierdebt
                updateClientDebt($sellbillclientId, $sellbilltotaldeptAfter);

                insertClientdebtchangeupdate($sellbillclientId, $sellbilltotaldeptBefor, $sellbillFinalbill, 1, "اضافة فاتورة مردوات مبيعات (معدله)", $returnsellbillId, $sellbilltotaldeptAfter, "returnsellbillController.php", "اضافة فاتورة مردوات مبيعات (معدله)", $sellbillAftertotalBill, $sellbillDate);
            }
        }


        //check if payed or not to change save value

        if ($sellbilltotalPayed > 0) {

            //get saveValue before and saveValue after mins sellbilltotalPayed
            $saveData = getSaveValueAndMins($_SESSION['saveid'], $sellbilltotalPayed);
            $saveId = $saveData[0];
            $saveValuebefore = $saveData[1];
            $saveValueafter = $saveData[2];

            //update saveFrom value after add transfer
            updateSave($saveId, $saveValueafter);

            //insert into savedaily tbl from savefrom

            $specialSellbilltotalPayed = $sellbilltotalPayed * -1;

            insertSavedailyupdate($saveValuebefore, $specialSellbilltotalPayed, 1, $saveId, "اضافة فاتورة مردوات مبيعات (معدله)", $returnsellbillId, $saveValueafter, "returnsellbillController.php", date("Y-m-d H:i:s"));
        }
    }



    return array($sellbillId, $returnsellbillId, $productsBeforeValid, $saveValuebeforeValid, $billtype);
}

//load client by Id tbl
function loadClientNameById($clientId) {
    //to use the variable out side the funcion
    global $myClientRecord;

    //load client by Id tbl
    $clientData = $myClientRecord->load($clientId);
    $clientName = $clientData->clientname;

    return $clientName;
}

//load client by Id tbl
function loadClientDataById($clientId) {
    //to use the variable out side the funcion
    global $myClientRecord;

    //load client by Id tbl
    $clientData = $myClientRecord->load($clientId);

    return $clientData;
}

// load Product by id tbl
function loadProductById($productid) {
    //to use the variable out side the funcion
    global $myProductRecord;
    global $myProductEx;

    // load Product by id tbl
    $productData = $myProductEx->loadByProductId($productid);

    return $productData;
}

function loadProductUnitWithProductAndUnit($productId, $unitId) {

    //to use the variable out side the funcion
    global $myProductunitEx;

    // select all data from productunit tbl
    $productunitData = $myProductunitEx->queryWithProductIdAndUnitId($productId, $unitId);

    return $productunitData;
}

function showAll() {
    global $mySellbillEx;
    global $myClientRecord;
    global $userDAO;
    global $smarty;


    $queryString = ' WHERE';
    $message = "";
    $startDate = $_REQUEST['from'];
    $endDate = $_REQUEST['to'];
    $sellbillSerial = $_REQUEST['sellbillserial'];
    $sellbillId = $_REQUEST['sellbillid'];
    $clientId = $_REQUEST['clientid'];
    $sellerid = $_REQUEST['sellerid'];
    $selleruserid = $_REQUEST['selleruserid'];

    if (isset($clientId) && $clientId != "-1") {


        $messageData = $myClientRecord->load($clientId);
        $message .= "<br> إسم العميل: " . $messageData->clientname;


        $queryString .= ' sellbill.sellbillclientid = ' . $clientId . ' AND';
    }

    if (isset($sellerid) && $sellerid != "-1") {


        $messageData = $userDAO->load($sellerid);
        $message .= "<br> إسم {if $Programsettingdata->delegate_seller eq 0} بائع {elseif $Programsettingdata->delegate_seller == 1}مندوب {elseif $Programsettingdata->delegate_seller == 2}طبيب {/if}: " . $messageData->employeename;


        $queryString .= ' sellbill.sellerid = ' . $sellerid . ' AND';
    }



    if (isset($selleruserid) && $selleruserid != "-1") {


        $messageData = $userDAO->load($selleruserid);
        $message .= "<br> إسم المستخدم: " . $messageData->employeename;


        $queryString .= ' sellbill.userid = ' . $selleruserid . ' AND';
    }

    if (isset($sellbillSerial) && $sellbillSerial != "") {

        $message .= "<br> رقم الفاتورة: " . $sellbillSerial;


        $queryString .= ' sellbill.sellbillserial = ' . $sellbillSerial . ' AND';
    }
    if (isset($sellbillId) && $sellbillId != "") {


        $message .= "<br> الرقم المتسلسل : " . $sellbillId;

        $queryString .= ' sellbill.sellbillid = ' . $sellbillId . ' AND';
    }
    if (isset($startDate) && $startDate != "" && isset($endDate) && $endDate != "") {


        $message .= "<br> من تاريخ : " . $startDate . " إلى تاريخ : " . $endDate . "";

        $queryString .= ' sellbill.sellbilldate >= "' . $startDate . '" and sellbill.sellbilldate <= "' . $endDate . '" AND';
    }



    $smarty->assign("message", $message);


    $arr = explode(' ', $queryString);
    //print_r($arr);
    if (isset($arr) && count($arr) > 0) {
        $lastWord = end($arr);
        if ($lastWord == 'AND') {//remove it
            array_pop($arr);
            //form the string again
            $queryString = implode(' ', $arr);
        }
        if ($lastWord == 'WHERE') {//remove it
            array_pop($arr);
            //form the string again
            $queryString = implode(' ', $arr);
        }

        //print("<br>queryString: ".$queryString."<br>");
    }

    $totalBills = 0;


    if ($queryString == "") {


        //print_r('in if');
        $today = date("Y-m-d h:m:s");
        $queryString .= ' where  sellbill.sellbilldate >= "' . $today . '" and sellbill.sellbilldate <= "' . $today . '" ';
    }

    //print_r($queryString);

    $sellbillData = $mySellbillEx->queryallWithOrder($queryString);
    if (count($sellbillData) > 0) {
        foreach ($sellbillData as $sell) {
            if ($sell->conditions == 0) {
                $totalBills += $sell->sellbillaftertotalbill;
            }
        }
    }
    // assign your db results to the template
    $smarty->assign('sellbillData', $sellbillData);
    $smarty->assign('totalBills', $totalBills);
}

function showByClient($clientId) {
    global $mySellbillEx;
    global $smarty;

    $totalBills = 0;
    $sellbillData = $mySellbillEx->queryWithClientId($clientId);
    if (count($sellbillData) > 0) {
        foreach ($sellbillData as $sell) {
            if ($sell->conditions == 0) {
                $totalBills += $sell->sellbillaftertotalbill;
            }
        }
    }
    // assign your db results to the template
    $smarty->assign('sellbillData', $sellbillData);
    $smarty->assign('totalBills', $totalBills);
}

function showBySriral($serial) {
    global $mySellbillEx;
    global $smarty;

    $totalBills = 0;
    $sellbillData = $mySellbillEx->queryWithSerail($serial);
    if (count($sellbillData) > 0) {
        foreach ($sellbillData as $sell) {
            if ($sell->conditions == 0) {
                $totalBills += $sell->sellbillaftertotalbill;
            }
        }
    }

    // assign your db results to the template
    $smarty->assign('sellbillData', $sellbillData);
    $smarty->assign('totalBills', $totalBills);
}

function showBySellbillId($sellbillId) {
    global $mySellbillEx;
    global $smarty;

    $totalBills = 0;
    $sellbillData = $mySellbillEx->queryWithSellbillId($sellbillId);
    if (count($sellbillData) > 0) {
        foreach ($sellbillData as $sell) {
            if ($sell->conditions == 0) {
                $totalBills += $sell->sellbillaftertotalbill;
            }
        }
    }

    // assign your db results to the template
    $smarty->assign('sellbillData', $sellbillData);
    $smarty->assign('totalBills', $totalBills);
}

function showByDate($startDate, $endDate) {
    global $mySellbillEx;
    global $smarty;

    $totalBills = 0;
    $sellbillData = $mySellbillEx->queryWithDate($startDate, $endDate);
    if (count($sellbillData) > 0) {
        foreach ($sellbillData as $sell) {
            if ($sell->conditions == 0) {
                $totalBills += $sell->sellbillaftertotalbill;
            }
        }
    }

    // assign your db results to the template
    $smarty->assign('sellbillData', $sellbillData);
    $smarty->assign('totalBills', $totalBills);
}

function delete($sellbillid) {
    global $mySellbill;

    global $mySellbillRecord;
    global $mySellbillEx;
    global $mySellbilldetail;
    global $mySellbilldetailRecord;

    global $soldSerialProductDAO;
    global $soldSerialProductExt;
    global $soldSerialProduct;
    global $myProductserialEx;


    global $CostcenterdetailDAO;
    global $Costcenterdetail;
    global $CostcenterdetailEX;

    try {

        $sellbillData = $mySellbillRecord->load($sellbillid);
        $CostcenterdetailEX->updatedellbytypeandmodelid(0, $sellbillid, 1);


        $sellbilltotalPayed = $sellbillData->sellbilltotalpayed;
        $sellbillstoreId = $sellbillData->sellbillstoreid;
        $sellbilltotaldeptAfter = $sellbillData->sellbilltotaldeptafter;
        $sellbilltotaldeptBefor = $sellbillData->sellbilltotaldeptbefor;
        $sellbillclientId = $sellbillData->sellbillclientid;
        $sellbillFinalbill = $sellbillData->sellbillfinalbill;
        $sellbillsaveId = $sellbillData->sellbillsaveid;

        $totalOperationCost = $sellbillData->sellbillaftertotalbill;

        $note;
        $saveValuebeforeValid = 1;

        /////////////////check save value before //////////////
        //get save value
        $saveValueBefore = getSaveValueBefore($sellbillsaveId);
        $saveValueafterValid = $saveValueBefore - $sellbilltotalPayed;
        if ($saveValueafterValid >= 0) {
            $saveValuebeforeValid = 1;

            $note = "success";
        } else {
            $saveValuebeforeValid = 0;
            //return $saveValuebeforeValid;

            $note = "لا يوجد بالخزنة المبلغ الكافى لحذف الفاتورة";
        }



        $mySellbill->conditions = 1;
        $mySellbill->sellbillsysdate = date("Y-m-d H:i:s");
        $mySellbill->userid = $_SESSION['userid'];
        $mySellbill->sellbillid = $sellbillid;

        $mySellbillEx->updateConditions($mySellbill);


        $sellbilldetailData = $mySellbilldetailRecord->queryBySellbillid($sellbillid);

        foreach ($sellbilldetailData as $sellbilldetail) {
            $productId = $sellbilldetail->sellbilldetailproductid;
            $quantity = $sellbilldetail->sellbilldetailquantity;
            $productunitId = $sellbilldetail->productunitid;




            if (isset($productId) && $productId != '-1' && $productId != "") {

                $productunitData = loadProductUnitWithProductAndUnit($productId, $productunitId);
                $productnumber = $productunitData->productnumber;
                $finalquantity = $quantity * $productnumber;




                $parcode = $sellbilldetail->parcode;
                $issold = $myProductserialEx->queryallisdSerial($productId, $parcode);


                if (count($issold) > 0) {


                    $soldSerialProduct->quantity = $finalquantity;
                    $soldSerialProduct->sellbilltype = 0;
                    $soldSerialProduct->sellbillid = $sellbillid;
                    $soldSerialProduct->del = 1;

                    $mysoldSerialProduct = $soldSerialProductExt->selectsoldeserial($soldSerialProduct);
                    //print_r($mysoldSerialProduct);
                    if (count($mysoldSerialProduct) > 0) {


                        $soldSerialProductExt->updatedel($soldSerialProduct);
                        $productserailid = $mysoldSerialProduct->productserailid;

                        updateSerailQty_ForReturn($productserailid, $finalquantity);
                    }
                }



                //get storeto productquantity before change
                $storedetailData = getStoredetailData($sellbillstoreId, $productId);

                $allStoredetailData = $storedetailData[0];
                $storedetailId = $storedetailData[1];
                $productquantityBefore = $storedetailData[2];

                if (count($allStoredetailData) > 0) {

                    //update productquantity in storedetail
                    $productquantityToAfter = increaseProductQuantity($storedetailId, $productquantityBefore, $finalquantity);


                    //insert in storereport
                    insertStorereport($productId, $sellbillstoreId, $finalquantity, $productquantityBefore, $productquantityToAfter, 0, $sellbillid, "حذف فاتورة مبيعات", "sellbillController.php");
                } else {
                    //insert in storedetail tbl
                    insertStoredetail($sellbillstoreId, $productId, $finalquantity);


                    //insert in storereport
                    insertStorereport($productId, $sellbillstoreId, $finalquantity, 0, $finalquantity, 0, $sellbillid, "حذف فاتورة مبيعات", "sellbillController.php");
                }
            }
        }



        if ($sellbillclientId != 0) {
            //check if sellbilltotaldeptAfter change from sellbilltotaldeptBefor
            //if($sellbilltotaldeptAfter != $sellbilltotaldeptBefor)
            {

                $clientData = loadClientDataById($sellbillclientId);
                $clientdeptBefor = $clientData->clientdebt;
                $clientdeptAfter = ($clientData->clientdebt) - $sellbillFinalbill;

                //update rawmaterialssupplierdebt
                updateClientDebt($sellbillclientId, $clientdeptAfter);

                insertClientdebtchange($sellbillclientId, $clientdeptBefor, $sellbillFinalbill, 1, "حذف فاتورة مبيعات", $sellbillid, $clientdeptAfter, "sellbillController.php", "حذف فاتورة مبيعات", $totalOperationCost);
            }
        }


        //check if payed or not to change save value

        if ($sellbilltotalPayed > 0) {

            //get saveValue before and saveValue after mins sellbilltotalPayed
            $saveData = getSaveValueAndMins($sellbillsaveId, $sellbilltotalPayed);
            $saveId = $saveData[0];
            $saveValuebefore = $saveData[1];
            $saveValueafter = $saveData[2];

            //update saveFrom value after add transfer
            updateSave($saveId, $saveValueafter);

            //insert into savedaily tbl from savefrom
            insertSavedaily($saveValuebefore, $sellbilltotalPayed, 1, $saveId, "حذف فاتورة مبيعات", $sellbillid, $saveValueafter, "sellbillController.php");
        }
    } catch (Exception $e) {
        $note = "حدث خطأ اثناء حذف الفاتورة";
    }

    return array($saveValuebeforeValid, $note);
}

function executeOperation() {
    //to use the variable out side the funcion
    global $mySellbillRecord;
    global $smarty;

    $outputString;

    $operationType = $_POST['operation'];
    $smarty->assign("operationType", $operationType);

    $choosedItemArr = $_POST['choosedItem'];
    //print_r($choosedItemArr);
    if (count($choosedItemArr) > 0) {
        foreach ($choosedItemArr as $sellbillId) {

            //get store name
            $sellbillData = $mySellbillRecord->load($sellbillId);
            $sellbillSerial = $sellbillData->sellbillserial;

            if ($operationType == '1') {
                //tempdelete
                $note = delete($sellbillId);
                if ($note[1] != "success") {
                    $outputString .= $sellbillSerial . ": " . $note[1] . "<br/>";
                } else {
                    $outputString .= $sellbillSerial . ": تمت العملية بنجاح <br/>";
                }
            }
        }

        $smarty->assign("outputString", $outputString);
    }
}

function loadProductCat() {
    global $myProductEx;

    $allParents = $myProductEx->queryAllCategories();

    return $allParents;
}

function loadUnit() {
    global $myUnitRecord;

    $unitsData = $myUnitRecord->queryByCondition(0);
    return $unitsData;
}

////////////////////////////save///////////////////////////
// get savecurrentvalue from save tbl
function getSaveValueBefore($saveid) {

    //to use the variable out side the funcion
    global $mySave;
    global $mySaveRecord;

    $saveData = $mySaveRecord->load($saveid);
    $saveValuebefore = $saveData->savecurrentvalue;

    return $saveValuebefore;
}

// get initialvalue and plus from save tbl
function getSaveValueAndPlus($saveid, $savevaluechanged) {

    //to use the variable out side the funcion
    global $mySave;
    global $mySaveRecord;

    $saveData = $mySaveRecord->load($saveid);
    $saveId = $saveData->saveid;
    $saveValuebefore = $saveData->savecurrentvalue;

    $saveValueafter = $saveValuebefore + $savevaluechanged;

    return array($saveId, $saveValuebefore, $saveValueafter);
}

// get initialvalue and mins from save tbl
function getSaveValueAndMins($saveid, $savevaluechanged) {

    //to use the variable out side the funcion
    global $mySave;
    global $mySaveRecord;

    $saveData = $mySaveRecord->load($saveid);
    $saveId = $saveData->saveid;
    $saveValuebefore = $saveData->savecurrentvalue;

    $saveValueafter = $saveValuebefore - $savevaluechanged;

    return array($saveId, $saveValuebefore, $saveValueafter);
}

// update in Save tbl
function updateSave($saveid, $savevalueafter) {

    //to use the variable out side the funcion
    global $mySave;
    global $mySaveEx;

    //update initialvalue in Save tbl
    $mySave->savecurrentvalue = $savevalueafter;
    $mySave->userid = $_SESSION['userid'];
    $mySave->saveid = $saveid;

    $mySaveEx->updateSaveValue($mySave);
}

// insert in Savedaily tbl
function insertSavedaily($savedailysavebefore, $savedailychangeamount, $savedailychangetype, $saveid, $processname, $savedailymodelid, $savedailysaveafter, $tablename) {

    //to use the variable out side the funcion
    global $mySavedaily;
    global $mySavedailyRecord;

    //insert in Savedaily tbl
    $mySavedaily->savedailydate = date("Y-m-d H:i:s");
    $mySavedaily->userid = $_SESSION['userid'];
    $mySavedaily->savedailysavebefore = $savedailysavebefore;
    $mySavedaily->savedailychangeamount = $savedailychangeamount;
    $mySavedaily->savedailychangetype = $savedailychangetype;
    $mySavedaily->saveid = $saveid;
    $mySavedaily->processname = $processname;
    $mySavedaily->savedailymodelid = $savedailymodelid;
    $mySavedaily->savedailysaveafter = $savedailysaveafter;
    $mySavedaily->tablename = $tablename;

    $mySavedailyRecord->insert($mySavedaily);
}

/////////////////////supplier///////////////////////
// update in rawmaterialssuppliers tbl
function updateSupplierDebt($supplierid, $supplierdebtAfter) {

    //to use the variable out side the funcion
    global $myRawmaterialssuppliers;
    global $myRawmaterialssuppliersEx;

    //update rawmaterialssupplierdebt in rawmaterialssuppliers tbl
    $myRawmaterialssuppliers->userid = $_SESSION['userid'];
    $myRawmaterialssuppliers->rawmaterialssupplierdebt = $supplierdebtAfter;
    $myRawmaterialssuppliers->rawmaterialssupplierid = $supplierid;

    $myRawmaterialssuppliersEx->updateSupplierDebt($myRawmaterialssuppliers);
}

/////////////////////////////////store////////////////////////////
// get productquantity from storedetail tbl
function getStoredetailData($storeid, $productid) {

    //to use the variable out side the funcion
    global $myStoredetailEx;

    //select data from storerawmaterialdetails by storeid and rawmaterialid
    $storedetailData = $myStoredetailEx->queryWithStoreAndProduct($productid, $storeid);

    $storedetailId = $storedetailData->storedetailid;
    $productquantityBefore = $storedetailData->productquantity;

    return array($storedetailData, $storedetailId, $productquantityBefore);
}

//update and increase productquantity in storedetail tbl
function increaseProductQuantity($storedetailId, $productquantityBefore, $productChangeAmount) {

    //to use the variable out side the funcion
    global $myStoredetail;
    global $myStoredetailEx;

    //increase productquantity
    $productquantityAfter = $productquantityBefore + $productChangeAmount;

    //update productquantity in storedetail tbl
    $myStoredetail->storedetailid = $storedetailId;
    $myStoredetail->userid = $_SESSION['userid'];
    $myStoredetail->storedetaildate = date("Y-m-d h:m:s");
    $myStoredetail->productquantity = $productquantityAfter;

    $myStoredetailEx->updateProductquantity($myStoredetail);

    return $productquantityAfter;
}

//update and decrease Rawmaterialamount in storerawmaterialdetails tbl
function decreaseProductQuantity($storedetailId, $productquantityBefore, $productChangeAmount) {

    //to use the variable out side the funcion
    global $myStoredetail;
    global $myStoredetailEx;

    //increase productquantity
    $productquantityAfter = $productquantityBefore - $productChangeAmount;

    //update productquantity in storedetail tbl
    $myStoredetail->storedetailid = $storedetailId;
    $myStoredetail->userid = $_SESSION['userid'];
    $myStoredetail->storedetaildate = date("Y-m-d h:m:s");
    $myStoredetail->productquantity = $productquantityAfter;

    $myStoredetailEx->updateProductquantity($myStoredetail);

    return $productquantityAfter;
}

//add in storerawmaterialdetails tbl
function insertStoredetail($storeid, $productid, $productChangeAmount) {

    global $myStoredetail;
    global $myStoredetailRecord;

    $myStoredetail->userid = $_SESSION['userid'];
    $myStoredetail->storedetaildate = date("Y-m-d h:m:s");
    $myStoredetail->productquantity = $productChangeAmount;
    $myStoredetail->storeid = $storeid;
    $myStoredetail->productid = $productid;

    $myStoredetailRecord->insert($myStoredetail);
}

//add in Storemovement tbl
function insertStorereport($productid, $storeid, $productChangeAmount, $productbefore, $productafter, $storereporttype, $storereportmodelid, $processname, $tablename) {
    global $myStorereport;
    global $myStorereportRecord;

    $myStorereport->processname = $processname;
    $myStorereport->productafter = $productafter;
    $myStorereport->productbefore = $productbefore;
    $myStorereport->productquantity = $productChangeAmount;
    $myStorereport->productid = $productid;
    $myStorereport->storeid = $storeid;
    $myStorereport->storereportdate = date("Y-m-d h:m:s");
    $myStorereport->storereportmodelid = $storereportmodelid;
    $myStorereport->storereporttype = $storereporttype;
    $myStorereport->tablename = $tablename;
    $myStorereport->userid = $_SESSION['userid'];

    $myStorereportRecord->insert($myStorereport);
}

///////////////////////////////////clients//////////////////////
// update in rawmaterialssuppliers tbl
function updateClientDebt($clientid, $clientdebtAfter) {

    //to use the variable out side the funcion
    global $myClient;
    global $myClientEx;

    //update clientdebt in client tbl
    $myClient->userid = $_SESSION['userid'];
    $myClient->clientdebt = $clientdebtAfter;
    $myClient->clientid = $clientid;

    $myClientEx->updateClientdebt($myClient);
}

// insert data into Clientdebtchange tbl
function insertClientdebtchange($clientid, $clientdebtchangebefore, $clientdebtchangeamount, $clientdebtchangetype, $processname, $clientdebtchangemodelid, $clientdebtchangeafter, $tablename, $comment, $totalOperationCost) {

    //to use the variable out side the funcion
    global $myClientdebtchange;
    global $myClientdebtchangeRecord;

    $myClientdebtchange->clientdebtchangeafter = $clientdebtchangeafter;
    $myClientdebtchange->clientdebtchangeamount = $clientdebtchangeamount;
    $myClientdebtchange->clientdebtchangebefore = $clientdebtchangebefore;
    $myClientdebtchange->clientdebtchangedate = date("Y-m-d h:m:s");
    $myClientdebtchange->clientdebtchangemodelid = $clientdebtchangemodelid;
    $myClientdebtchange->clientdebtchangetype = $clientdebtchangetype;
    $myClientdebtchange->clientid = $clientid;
    $myClientdebtchange->comment = $comment;
    $myClientdebtchange->processname = $processname;
    $myClientdebtchange->tablename = $tablename;
    $myClientdebtchange->userid = $_SESSION['userid'];
    $myClientdebtchange->totalOperationCost = $totalOperationCost;

    $myClientdebtchangeRecord->insert($myClientdebtchange);
}

function updateSerailDon($productserailid, $don, $billId) {
    global $myProductserial;
    global $myProductserialEx;

    $myProductserial->productserailid = $productserailid;
    $myProductserial->don = $don;
    $myProductserial->sellbillid = $billId;

    $myProductserialEx->updateDonExt($myProductserial);
}

function updateSerailQty($productserailId, $soldQuantity) {
    global $myProductserial;
    global $myProductserialEx;

    $productQuantity = $myProductserialEx->getProductQuantity($productserailId);
    if ($productQuantity > 0) {
        $availableQty = $productQuantity - $soldQuantity;
        //if(isset($availableQty) && $availableQty < 0)
//			{
//				//في حالة بيع منتج بكمية أكبر من عدد السريالات
//			}
//			else
//			{
//
//			}

        $myProductserial->productserailid = $productserailId;
        $myProductserial->don = $availableQty;
        //print_r($myProductserial);
        $myProductserialEx->updateDon($myProductserial);
    }
}

function updateSerailQty_ForReturn($productserailId, $returnedQuantity) {
    global $myProductserial;
    global $myProductserialEx;

    $productQuantity = $myProductserialEx->getProductQuantity($productserailId);

    //print_r('<br>returnedQuantity'.$returnedQuantity);
    //print_r('<br>productQuantity'.$productQuantity);
    if ($productQuantity > 0) {
        $availableQty = $productQuantity + $returnedQuantity;

        //print_r('<br>availableQty'.$availableQty);
        $myProductserial->productserailid = $productserailId;
        $myProductserial->don = $availableQty;
        //print_r('<br>cccccccccccccccccccc'.$productserailId);
        $myProductserialEx->updateDon($myProductserial);
    }
}

function insertIntoSoldSerialProduct($productserailId, $soldQuantity, $sellbillId, $sellbilltype) {
    global $soldSerialProduct;
    global $soldSerialProductDAO;

    $soldSerialProduct->productserailid = $productserailId;
    $soldSerialProduct->quantity = $soldQuantity;
    $soldSerialProduct->sellbilltype = $sellbilltype;
    $soldSerialProduct->sellbillid = $sellbillId;
    $soldSerialProduct->del = 0;
    //print("<br>");
    //print_r($soldSerialProduct);
    $soldSerialProductDAO->insert($soldSerialProduct);
}

function showDetailreturn($sellbillid) {
    global $mySellbillandruternEx;
    global $mySellandruternbilldetailEx;

    //load Sellbillandrutern data by id
    $sellbillandruternData = $mySellbillandruternEx->loadSellbillandruternById($sellbillid);

    $sellbilldetailData = $mySellandruternbilldetailEx->queryWithSellBillIdAndSellType($sellbillid, 0);

    $sellQuantity = 0;
    foreach ($sellbilldetailData as $sellbilldetail) {
        $sellQuantity = $sellQuantity + $sellbilldetail->sellbilldetailquantity;
    }

    $ruternbilldetailData = $mySellandruternbilldetailEx->queryWithSellBillIdAndSellType($sellbillid, 1);

    $returnQuantity = 0;
    foreach ($ruternbilldetailData as $ruternbilldetail) {
        $returnQuantity = $returnQuantity + $ruternbilldetail->sellbilldetailquantity;
    }

    return array($sellbillandruternData, $sellbilldetailData, $ruternbilldetailData, $sellQuantity, $returnQuantity);
}

function addtocostcenter($costamount, $costcenterid, $modelid, $processname, $tablename, $type) {

    $Costcenterdetail->costamount = $costamount;
    $Costcenterdetail->costcenterid = $costcenterid;
    $Costcenterdetail->costdate = date('Y-m-d');
    $Costcenterdetail->del = 0;
    $Costcenterdetail->modelid = $modelid;
    $Costcenterdetail->processname = $processname;
    $Costcenterdetail->tablename = $tablename;
    $Costcenterdetail->type = $type;
    $Costcenterdetail->uesrid = $_SESSION['userid'];

    if ($Costcenterid != -1 && $Costcenterid != '-1') {
        $CostcenterdetailDAO->insert($Costcenterdetail);
    }
}
