File: /home/mostafedeg/public_html/erp/controllers/rentproducts.php
<?php
//the global file operation
include("../public/impOpreation.php");
//global varable
global $showoutside;
//to check if the page from .htacess
//$showoutside = $_GET['sn'];
// get the config file
include_once("../public/config.php");
include_once("dailyentryfun.php");
//here the db files that include in the file
include("../public/include_dao.php");
require_once('../models/dao/YoutubeLinkDAO.class.php');
require_once('../models/dto/YoutubeLink.class.php');
require_once('../models/mysql/YoutubeLinkMySqlDAO.class.php');
require_once('../models/mysql/ext/YoutubeLinkMySqlExtDAO.class.php');
//get the do the action
$do = $_GET['do'];
$langs = $_SESSION['erp_lang'];
include_once("../views/languages/$langs/success.php");
include_once("../views/languages/$langs/error.php");
/* ======================
Controller Name :- productController
OPERTATION in Controller
1- display add form, add supplier cat and supplier with ajax
2- add in supplier tbl
2.1- insert into supplier unit tbl
2.2- insert into storedetail tbl
2.3- insert new row into storereport tbl
3- display show and tempdelete
4- edit supplier
5- update supplier
5.1- update supplier tbl with supplierid
5.2- delete supplier units associated to this supplier from productunit tbl, then insert it again
======================== */
//here the global templates
$smarty->display("header.html");
//here goes the instances and general variables
//Accountstree
$accountsTree = new Accountstree();
$accountsTreeDAO = new AccountstreeMySqlDAO();
$accountsTreeEX = new AccountstreeMySqlExtDAO();
//Supplierdebtchange
$Supplierdebtchange = new Supplierdebtchange();
$SupplierdebtchangeDAO = new SupplierdebtchangeMySqlDAO();
$SupplierdebtchangeEX = new SupplierdebtchangeMySqlExtDAO();
//Programsetting
$Programsetting = new Programsetting();
$ProgramsettingDAO = new ProgramsettingsMySqlDAO();
$ProgramsettingEX = new ProgramsettingsMySqlExtDAO();
//Dailyentry
$dailyEntry = new Dailyentry();
$dailyEntryDAO = new DailyentryMySqlDAO();
$dailyEntryEX = new DailyentryMySqlExtDAO();
//Dailyentrycreditor دائن
$dailyEntryCreditor = new Dailyentrycreditor();
$dailyEntryCreditorDAO = new DailyentrycreditorMySqlDAO();
$dailyEntryCreditorEX = new DailyentrycreditorMySqlExtDAO();
//Dailyentrydebtor مدين
$dailyEntryDebtor = new Dailyentrydebtor();
$dailyEntryDebtorDAO = new DailyentrydebtorMySqlDAO();
$dailyEntryDebtorEX = new DailyentrydebtorMySqlExtDAO();
$today = date("Y-m-d");
$Programsettingdata = $ProgramsettingDAO->load(1);
$smarty->assign("Programsettingdata", $Programsettingdata);
/* * * classes ** */
$rentProducts = new Rentproduct();
$myrentProducts = new RentproductMySqlDAO();
$extrentProducts = new RentproductMySqlExtDAO();
$rentStore = new Rentstore();
$myrentStore = new RentstoreMySqlDAO();
$extrentStore = new RentstoreMySqlExtDAO();
$supplier = new Supplier();
$mysupplier = new SupplierMySqlDAO();
$extsupplier = new SupplierMySqlExtDAO();
$save = new Save();
$mysave = new SaveMySqlDAO();
$extsave = new SaveMySqlExtDAO();
$Savedaily = new Savedaily();
$SavedailyDAO = new SavedailyMySqlDAO();
$youtubeLink = new YoutubeLink();
$youtubeLinkDAO = new YoutubeLinkMySqlDAO();
$youtubeLinkEX = new YoutubeLinkMySqlExtDAO();
//check and use the condition that suite this action
if (empty($do)) {
//here the permssion check
include_once("../public/authentication.php");
$suppliers = $mysupplier->queryAll();
$smarty->assign('suppliers', $suppliers);
//here the smarty templates
$smarty->display("rent/products/add.html");
} elseif ($do == "add") {
include_once("../public/authentication.php");
//get vars
$name = filter_input(INPUT_POST, 'name');
$info = filter_input(INPUT_POST, 'info');
$amount = filter_input(INPUT_POST, 'amount');
$buyprice = filter_input(INPUT_POST, 'buyprice');
$totalprice = filter_input(INPUT_POST, 'totalprice');
$rentprice = filter_input(INPUT_POST, 'rentprice');
$paytype = filter_input(INPUT_POST, 'paytype');
$supplierid = filter_input(INPUT_POST, 'supplierid');
$createdate = date('Y-m-d');
$checkduplicate = $myrentProducts->queryByName($name);
if (count($checkduplicate) > 0) {
$smarty->assign('msg', 'تم ادخال اسم المنتج من قبل ');
$smarty->display("rent/products/add.html");
} else {
try {
$rentProducts->buyprice = $buyprice;
$rentProducts->createdate = $createdate;
$rentProducts->name = $name;
$rentProducts->paytype = $paytype;
$rentProducts->quantity = $amount;
$rentProducts->rentprice = $rentprice;
$rentProducts->supplierid = $supplierid;
$rentProducts->totalprice = $totalprice;
$rentProducts->info = $info;
$rentProducts->isdel = 0;
$rentProducts->dailyentryid = 0;
$insertid = $myrentProducts->insert($rentProducts);
$rentStore->amount = $amount;
$rentStore->rented = 0;
$rentStore->rentproductid = $insertid;
$myrentStore->insert($rentStore);
//check type
//if cash or supplier
if ($paytype == 0) {
//cash
#1 decrease save
$saveinfo = $mysave->load($_SESSION['saveid']);
$balanceBefore = $saveinfo->savecurrentvalue;
$balanceAfter = $balanceBefore - $totalprice;
#2 update save
$save->savecurrentvalue = $balanceAfter;
$save->userid = $_SESSION['userid'];
$save->saveid = $_SESSION['saveid'];
$extsave->updateSaveValue($save);
#3 update save report
$Savedaily->savedailydate = date("Y-m-d");
$Savedaily->userid = $_SESSION['userid'];
$Savedaily->savedailysavebefore = $balanceBefore;
$Savedaily->savedailychangeamount = $totalprice;
$Savedaily->savedailychangetype = 1;
$Savedaily->saveid = $_SESSION['saveid'];
$Savedaily->processname = 'اضافه منتج جديد للايجار';
$Savedaily->savedailymodelid = $insertid;
$Savedaily->savedailysaveafter = $balanceAfter;
$Savedaily->tablename = 'rentproducts.php';
$SavedailyDAO->insert($Savedaily);
/* قيد اليومية للكاش */
$dailyEntry->entryComment = 'تم اضافة منتج فى ادارة منتجات عن طريق ( الكاش)';
$dailyEntry->reverseofid = -9;
//Dailyentrydebtor المشتريات
$dailyEntryDebtorArray = array();
$dailyEntryDebtor->value = $totalprice;
$dailyEntryDebtor->accountstreeid = 12;
//Dailyentrycreditor الخزنة
$dailyEntryCreditorArray = array();
$dailyEntryCreditor->value = $totalprice;
//save session
$saveid = $_SESSION['saveid'];
$dataSave = $mysave->load($saveid);
$idTreeSave = $dataSave->treeId;
$dailyEntryCreditor->accountstreeid = $idTreeSave;
array_push($dailyEntryDebtorArray, $dailyEntryDebtor);
array_push($dailyEntryCreditorArray, $dailyEntryCreditor);
$returnedData = insertEntery($dailyEntry, $dailyEntryDebtorArray, $dailyEntryCreditorArray);
$dailyId = $returnedData[1];
$rentProductsData = $myrentProducts->load($insertid);
$rentProducts->buyprice = $rentProductsData->buyprice;
$rentProducts->createdate = $rentProductsData->createdate;
$rentProducts->name = $rentProductsData->name;
$rentProducts->paytype = $rentProductsData->paytype;
$rentProducts->quantity = $rentProductsData->quantity;
$rentProducts->rentprice = $rentProductsData->rentprice;
$rentProducts->supplierid = $rentProductsData->supplierid;
$rentProducts->totalprice = $rentProductsData->totalprice;
$rentProducts->info = $rentProductsData->info;
$rentProducts->isdel = $rentProductsData->isdel;
$rentProducts->dailyentryid = $dailyId;
$myrentProducts->update($rentProducts);
} else {
//supplier
#1 increase supplier debt
$supplierinfo = $mysupplier->load($supplierid);
$debtBefore = $supplierinfo->suppliercurrentDebt;
$debtAfter = $debtBefore + $totalprice;
#2 update supplier debt
$supplier->suppliercurrentDebt = $debtAfter;
$supplier->userid = $_SESSION['userid'];
$supplier->supplierdate = date("Y-m-d");
$supplier->supplierid = $supplierid;
$extsupplier->updatedept($supplier);
#3 insert supplier debt change
$Supplierdebtchange->comment = "";
$Supplierdebtchange->processname = "إضافة منتجات للايجار تبع مورد ";
$Supplierdebtchange->supplierdebtchangeafter = $debtAfter;
$Supplierdebtchange->supplierdebtchangeamount = $totalprice;
$Supplierdebtchange->supplierdebtchangebefore = $debtBefore;
$Supplierdebtchange->supplierdebtchangedate = date("Y-m-d");
$Supplierdebtchange->supplierdebtchangemodelid = $insertid;
$Supplierdebtchange->supplierid = $supplierid;
$Supplierdebtchange->supplierdebtchangetype = 0;
$Supplierdebtchange->tablename = "rentproducts.php";
$Supplierdebtchange->userid = $_SESSION['userid'];
$Supplierdebtchange->dailyentryid = 0;
$SupplierdebtchangeDAO->insert($Supplierdebtchange);
/* قيد اليومية للاجل */
$dailyEntry->entryComment = 'تم اضافة منتج فى ادارة منتجات عن طريق ( الاجل)';
$dailyEntry->reverseofid = -9;
//Dailyentrydebtor المشتريات
$dailyEntryDebtorArray = array();
$dailyEntryDebtor->value = $totalprice;
$dailyEntryDebtor->accountstreeid = 12;
//Dailyentrycreditor الدائنون - المورد
$dailyEntryCreditorArray = array();
$dailyEntryCreditor->value = $totalprice;
//supplier
$oldSupplier = $mysupplier->load($supplierid);
$treeId = $oldSupplier->treeId;
$dailyEntryCreditor->accountstreeid = $treeId;
array_push($dailyEntryDebtorArray, $dailyEntryDebtor);
array_push($dailyEntryCreditorArray, $dailyEntryCreditor);
$returnedData = insertEntery($dailyEntry, $dailyEntryDebtorArray, $dailyEntryCreditorArray);
$dailyId = $returnedData[1];
$rentProductsData = $myrentProducts->load($insertid);
$rentProducts->buyprice = $rentProductsData->buyprice;
$rentProducts->createdate = $rentProductsData->createdate;
$rentProducts->name = $rentProductsData->name;
$rentProducts->paytype = $rentProductsData->paytype;
$rentProducts->quantity = $rentProductsData->quantity;
$rentProducts->rentprice = $rentProductsData->rentprice;
$rentProducts->supplierid = $rentProductsData->supplierid;
$rentProducts->totalprice = $rentProductsData->totalprice;
$rentProducts->info = $rentProductsData->info;
$rentProducts->isdel = $rentProductsData->isdel;
$rentProducts->dailyentryid = $dailyId;
$myrentProducts->update($rentProducts);
}
header("location:?do=sucess");
} catch (Exception $exc) {
header("location:?do=error");
// print_r($exc);
}
}
} elseif ($do == "show") {
include_once("../public/authentication.php");
$allproducts = $extrentProducts->queryAllwithnodel();
$smarty->assign('allproducts', $allproducts);
$youtubes = $youtubeLinkDAO->queryAll();
$smarty->assign("youtubes", $youtubes);
$smarty->assign('customUsergroup', 1); //for delete model
$smarty->display("rent/products/show.html");
} elseif ($do == "edit") {
include_once("../public/authentication.php");
$id = filter_input(INPUT_GET, 'id');
$suppliers = $mysupplier->queryAll();
$smarty->assign('suppliers', $suppliers);
$product = $myrentProducts->load($id);
$smarty->assign('product', $product);
$smarty->display("rent/products/edit.html");
} elseif ($do == "editprint") {
include_once("../public/authentication.php");
$id = filter_input(INPUT_GET, 'id');
$suppliers = $mysupplier->queryAll();
$smarty->assign('suppliers', $suppliers);
$product = $myrentProducts->load($id);
$smarty->assign('product', $product);
$smarty->display("rent/products/editprint.html");
} elseif ($do == "update") {
include_once("../public/authentication.php");
//get vars
$name = filter_input(INPUT_POST, 'name');
$info = filter_input(INPUT_POST, 'info');
$buyprice = filter_input(INPUT_POST, 'buyprice');
$totalprice = filter_input(INPUT_POST, 'totalprice');
$rentprice = filter_input(INPUT_POST, 'rentprice');
$id = filter_input(INPUT_POST, 'id');
//Transaction
$mytransactions = new Transaction();
try {
$product = $myrentProducts->load($id);
if ($product->paytype == 0) {
reverseEntryWithItsID($product->dailyentryid, 1);
/* قيد اليومية للكاش */
$dailyEntry->entryComment = 'تم تعديل المنتج فى ادارة منتجات عن طريق ( الكاش)';
$dailyEntry->reverseofid = -9;
//Dailyentrydebtor المشتريات
$dailyEntryDebtorArray = array();
$dailyEntryDebtor->value = $totalprice;
$dailyEntryDebtor->accountstreeid = 12;
//Dailyentrycreditor الخزنة
$dailyEntryCreditorArray = array();
$dailyEntryCreditor->value = $totalprice;
//save session
$saveid = $_SESSION['saveid'];
$dataSave = $mysave->load($saveid);
$idTreeSave = $dataSave->treeId;
$dailyEntryCreditor->accountstreeid = $idTreeSave;
array_push($dailyEntryDebtorArray, $dailyEntryDebtor);
array_push($dailyEntryCreditorArray, $dailyEntryCreditor);
$returnedData = insertEntery($dailyEntry, $dailyEntryDebtorArray, $dailyEntryCreditorArray, 1);
$dailyId = $returnedData[1];
} else if ($product->paytype == 1) {
reverseEntryWithItsID($product->dailyentryid, 1);
/* قيد اليومية للاجل */
$dailyEntry->entryComment = 'تم تعديل المنتج فى ادارة منتجات عن طريق ( الاجل)';
$dailyEntry->reverseofid = -9;
//Dailyentrydebtor المشتريات
$dailyEntryDebtorArray = array();
$dailyEntryDebtor->value = $totalprice;
$dailyEntryDebtor->accountstreeid = 12;
//Dailyentrycreditor الدائنون - المورد
$dailyEntryCreditorArray = array();
$dailyEntryCreditor->value = $totalprice;
//supplier
$oldSupplier = $mysupplier->load($product->supplierid);
$treeId = $oldSupplier->treeId;
$dailyEntryCreditor->accountstreeid = $treeId;
array_push($dailyEntryDebtorArray, $dailyEntryDebtor);
array_push($dailyEntryCreditorArray, $dailyEntryCreditor);
$returnedData = insertEntery($dailyEntry, $dailyEntryDebtorArray, $dailyEntryCreditorArray, 1);
$dailyId = $returnedData[1];
}
// //update it
// try {
$rentProducts->buyprice = $buyprice;
$rentProducts->name = $name;
$rentProducts->rentprice = $rentprice;
$rentProducts->totalprice = $totalprice;
$rentProducts->info = $info;
$rentProducts->id = $id;
$rentProducts->dailyentryid = $dailyId;
$extrentProducts->updateprice($rentProducts);
$mytransactions->commit();
header("location:?do=sucess");
} catch (Exception $exc) {
$mytransactions->rollback();
header("location:?do=error");
}
} elseif ($do == "tempdelete") {//tempdelete
include_once("../public/authentication.php");
//Transaction
$mytransactions = new Transaction();
try {
$id = filter_input(INPUT_GET, 'id');
$dailyentryid = $_GET['dailyentryid'];
$rentProducts->id = $id;
$rentProducts->isdel = 1;
$extrentProducts->tempdelete($rentProducts);
reverseEntryWithItsID($dailyentryid, 1);
$mytransactions->commit();
header("location:?do=sucess");
} catch (Exception $e) {
$mytransactions->commit();
header("location:?do=error");
}
} elseif ($do == "sucess") {
//here the smarty templates
$smarty->display("succes.html");
} elseif ($do == "error") {
//here the smarty templates
$smarty->display("error.html");
}
//here the global templates
$smarty->assign("rentjs", 1);
$smarty->display("footer.html");
/* ===============================
function in this CONTROLLER
================================ */
?>