Esempio n. 1
0
function GroupSavePay()
{
    $pdo = PdoDataAccess::getPdoObject();
    $pdo->beginTransaction();
    $parts = json_decode($_POST["parts"]);
    $FirstPay = true;
    $DocObj = null;
    $sumAmount = 0;
    foreach ($parts as $partStr) {
        $arr = preg_split("/_/", $partStr);
        $RequestID = $arr[0];
        $PayAmount = $arr[1];
        $obj = new LON_BackPays();
        PdoDataAccess::FillObjectByArray($obj, $_POST);
        $obj->RequestID = $RequestID;
        $obj->PayAmount = $PayAmount;
        $obj->IsGroup = "YES";
        if ($obj->PayType == "9") {
            $obj->ChequeStatus = 3;
        }
        $obj->Add($pdo);
        $ReqObj = new LON_requests($RequestID);
        $PersonObj = new BSC_persons($ReqObj->ReqPersonID);
        if ($PersonObj->IsSupporter == "YES") {
            $result = RegisterSHRTFUNDCustomerPayDoc($DocObj, $obj, $_POST["CostID"], $_POST["TafsiliID"], $_POST["TafsiliID2"], isset($_POST["CenterAccount"]) ? true : false, $_POST["BranchID"], $_POST["FirstCostID"], $_POST["SecondCostID"], $pdo, true);
        } else {
            $result = RegisterCustomerPayDoc($DocObj, $obj, $_POST["CostID"], $_POST["TafsiliID"], $_POST["TafsiliID2"], isset($_POST["CenterAccount"]) ? true : false, $_POST["BranchID"], $_POST["FirstCostID"], $_POST["SecondCostID"], $pdo, true);
        }
        if (!$result) {
            $pdo->rollback();
            print_r(ExceptionHandler::PopAllExceptions());
            echo Response::createObjectiveResponse(false, "خطا در صدور سند حسابداری");
            die;
        }
        if ($FirstPay) {
            $DocID = LON_BackPays::GetAccDoc($obj->BackPayID, $pdo);
            $DocObj = new ACC_docs($DocID, $pdo);
            $FirstPay = false;
        }
        $sumAmount += $PayAmount * 1;
    }
    if ($_POST["PayType"] == "9") {
        $obj = new LON_BackPays();
        PdoDataAccess::FillObjectByArray($obj, $_POST);
        $obj->ChequeStatus = "1";
        $obj->PayAmount = $sumAmount;
        $result = RegisterOuterCheque($DocID, $obj, $pdo);
        $obj->ChequeStatus = "3";
        $result = RegisterOuterCheque($DocID, $obj, $pdo);
    }
    $pdo->commit();
    echo Response::createObjectiveResponse(true, "");
    die;
}