Esempio n. 1
0
function registerDoc()
{
    require_once '../../../../accountancy/import/salary/salary.class.php';
    $AccDocObj = new ImportSalary($_POST["pay_year"], $_POST["pay_month"]);
    if ($AccDocObj->InitialImportance($_POST["PersonType"] == "contract") === false) {
        echo Response::createObjectiveResponse(false, ExceptionHandler::GetExceptionsToString("<br>"));
        die;
    }
    $query = "\t\n\t\tselect  c.CostCenterID,\n\t\t\t\tc.Title,\n\t\t\t\tsit.CostID,\n\t\t\t\tsit.CostType,\n\t\t\t\tcase s.person_type when 1 then if(w.emp_state=11, 'ConditionalProf', 'Prof')\n\t\t\t\t\t\t\t\t   when 2 then 'Staff'\n\t\t\t\t\t\t\t\t   when 3 then 'Worker'\n\t\t\t\t\t\t\t\t   when 5 then 'Contract' end PersonType, \n\t\t\t\ts.last_retired_pay,\n\t\t\t\tw.emp_state,\n\t\t\t\tc.AccUnitID,\t\t\t\t\n\t\t\t\tpit.salary_item_type_id,\n\t\t\t\tsum(pit.pay_value) pay_value,\n\t\t\t\tsum(pit.diff_value_coef * pit.diff_pay_value) diff_pay_value,\n\t\t\t\tsum(param7) param7,\n\t\t\t\tsum(diff_param7_coef * diff_param7) diff_param7,\n\t\t\t\tsum(param2) param2,\n\t\t\t\tsum(diff_param2_coef * diff_param2) diff_param2,\n\t\t\t\tsum(param3) param3,\n\t\t\t\tsum(diff_param3_coef * diff_param3) diff_param3\n\t\t\t\t\n\t\tFROM payments p \n\t\t\tJOIN staff s ON s.staff_id = p.staff_id\n\t\t\tJOIN writs w\n\t\t\t\tON(p.writ_id = w.writ_id AND\n\t\t\t\t   p.writ_ver = w.writ_ver AND\n\t\t\t\t   p.staff_id = w.staff_id AND w.state=3)\n\n\t\t\tJOIN payment_items pit \n\t\t\t\tON(p.pay_year = pit.pay_year AND p.pay_month = pit.pay_month AND\n\t\t\t\t   p.staff_id = pit.staff_id AND p.payment_type = pit.payment_type)\n\n\t\t\tJOIN persons per ON (per.personid = s.personid )\n\t\t\tJOIN banks b ON b.bank_id = p.bank_id\n\t\t\tJOIN CostCenterPlan c ON c.CostCenterID = w.CostCenterID\n\t\t\tJOIN salary_item_types sit using(salary_item_type_id)\n\t\t\t\n\t\tWHERE p.pay_year = :py and p.pay_month = :pm and p.payment_type = 1 \n\t\t\tand s.person_type in(" . ($_POST["PersonType"] == "contract" ? "5" : "1,2,3") . ") AND sit.CostID>0\n\n\t\tgroup by c.CostCenterID , s.person_type , p.payment_type , pit.salary_item_type_id\n\t\torder by c.CostCenterID,pit.salary_item_type_id";
    $dt = PdoDataAccess::runquery_fetchMode($query, array(":py" => $_POST["pay_year"], ":pm" => $_POST["pay_month"]));
    $AccError = "";
    while ($row = $dt->fetch()) {
        $amount = 0;
        switch ($row["salary_item_type_id"]) {
            case 44:
                if ($row["PersonType"] == "ConditionalProf") {
                    $row["CostID"] = 19023;
                }
                $amount = $row["pay_value"] + $row["diff_pay_value"];
                break;
                //..................................................................
            //..................................................................
            case 143:
            case 38:
                $coef_dolat = 1.7 / 1.65;
                $amount = $row["param7"] + $row["diff_param7"] + ($row["param7"] + $row["diff_param7"]) * $coef_dolat;
                break;
                //..................................................................
            //..................................................................
            case 9920:
            case 144:
                $amount = $row["param2"] + $row["diff_param2"];
                break;
            case 145:
                $amount = $row["param2"] + $row["diff_param2"] + $row["param3"] + $row["diff_param3"];
                break;
            case 744:
                $amount = $row["param2"] + $row["diff_param2"];
                break;
                //..................................................................
            //..................................................................
            case 149:
            case 150:
            case 750:
                $amount = $row["param3"] + $row["diff_param3"];
                break;
                //..................................................................
            //..................................................................
            case 9931:
                if ($row["PersonType"] == "Staff" || $row["PersonType"] == "Contract") {
                    $row["CostID"] = 341;
                }
                if ($row["PersonType"] == "Worker") {
                    $row["CostID"] = 342;
                }
                $amount = $row["pay_value"] + $row["diff_pay_value"];
                break;
                //..................................................................
            //..................................................................
            default:
                $amount = $row["pay_value"] + $row["diff_pay_value"];
        }
        $AccDocObj->AddItem($row["AccUnitID"], $row["CostID"], $amount, $row["PersonType"]);
        if (ExceptionHandler::GetExceptionCount() > 0) {
            $AccError .= "مرکز هزینه : " . $row["Title"] . "<br><hr><br>";
            $AccError .= "<span style=color:red><h3>" . ExceptionHandler::GetExceptionsToString("<br>") . "</h3></span>";
        }
        ExceptionHandler::PopAllExceptions();
    }
    $AccDocObj->CommitImportance();
    echo Response::createObjectiveResponse($AccError == "", $AccError);
    die;
}
Esempio n. 2
0
	require_once '../../../../accountancy/import/salary/salary.class.php';
	
	if(isset($_POST["DeleteDoc"]))
	{
		$AccDocObj = new ImportSalary($_POST["pay_year"], $_POST["pay_month"]);
		if(!$AccDocObj->DeleteAccDoc())
			echo "<center><h2>" . ExceptionHandler::GetExceptionsToString ("<br>") . "</h2></center>";
		else
			echo "<center><h2>" . " پیش سند با موفقیت حذف شد" . "</h2></center>";
	}	
	
	$regAccDoc = !empty($_POST["registerDoc"]) ? true : false;		
	if($regAccDoc)
	{
		$AccDocObj = new ImportSalary($_POST["pay_year"], $_POST["pay_month"]);
		if($AccDocObj->InitialImportance() === false)
		{
			echo "<center><h2>" . ExceptionHandler::GetExceptionsToString ("<br>") . "</h2></center>";
			$regAccDoc = false;
		}
	}
	$CostCodesArray = array(
		ImportSalary::PERSON_TYPE_ConditionalProf => array(
			"salary" => 18581,//150010110,
			"overtime" => 0,
			"OrgInsurance" => 18582,//150060113,
			"GovInsurance" => 434, // 150060112
			"27" => 30,//150010213,
			"extra" => 19023//150010241			
		),
		ImportSalary::PERSON_TYPE_Prof => array(