Exemple #1
0
/**
 * Action handler for the INSERT / UPDATE of a membership record
 * returns err:string or success:messages ...
 *
 * @param int $membership_id
 * @param int $player_id
 * @param int $verein_id
 * @param int $mtype_id
 * @param string $v_passnr
 * @param date $v_mstart
 * @param date $v_mend
 */
function dso_insupdmembership($membership_id, $player_id, $verein_id, $mtype_id, $v_passnr, $v_mstart, $v_mend)
{
    global $dbi, $usertoken;
    // CHECK ACCESS 2
    $qV = sql_query('SELECT * from tverein WHERE vid=' . $verein_id, $dbi);
    $aV = sql_fetch_array($qV, $dbi);
    if ($usertoken['registermap'][$aV['verband_id']] < 3) {
        return 'E50:P2:RightsMissing:' . $usertoken['registermap'][$aV['verband_id']];
    }
    // cre_INFO, date defaults ...
    $upd_date = ls_getdate();
    // check Values
    if (!$verein_id > 0) {
        die_red('Verein not set');
    }
    if (!$mtype_id > 0) {
        die_red('Type not set');
    }
    if (!$player_id > 0) {
        die_red('Player not set');
    }
    if (strlen($v_passnr) < 3) {
        die_red('Pass Number not set');
    }
    if (!check_date($v_mstart)) {
        $v_mstart = substr($upd_date, 0, 4) . '-01-01';
    }
    if (!check_date($v_mend)) {
        $v_mend = substr($upd_date, 0, 4) . '-12-31';
    }
    /* CODE from the workflow ORM stuff ...
    	$p=new cPlayer;
    	$p->setDB($dbi);
    	$p->getbyID($player_id);
    	$p->saveMembershipVerein($v_verein,$v_mtype,$v_passnr,$v_mstart,$v_mend);
    	if (strlen($p->pError)>1){debug($p->pError);return 0;}else{return 1;}
    	*/
    if ($membership_id > 0) {
        $qry = "UPDATE tmembership SET mtype={$mtype_id},mvereinid={$verein_id},mpassnr='{$v_passnr}', mstart='{$v_mstart}',mend='{$v_mend}'," . "mcre_user='******'uname'] . "',mcre_date='{$upd_date}' where mpid={$player_id} and mid={$membership_id} limit 1";
    } else {
        $qry = 'INSERT into tmembership(mid,mpid,mtype,mpassnr,mstart,mend,mvereinid,mcre_user,mcre_date,mstatus,mflag)' . " VALUES(0,{$player_id},{$mtype_id},'{$v_passnr}','{$v_mstart}','{$v_mend}',{$verein_id},'" . $usertoken['uname'] . "','{$upd_date}',0,0)";
    }
    if (!($presult = sql_query($qry, $dbi))) {
        return '<font color=red>E71:DB error on MembershipRecord save possible constraint violation</font>';
    }
    # // In any case we store the KEYVAL directly into the player record  ...
    # // and we make sure the player is marked as active ...
    $keyfield = dso_getPassKeyFieldForType($mtype_id);
    $sql = "update tplayer set {$keyfield}=\"{$v_passnr}\",pactive=1 where pid={$player_id}";
    if (!($ans = sql_query($sql, $dbi))) {
        return 'Database error on keyfield save ...';
    }
    dsolog(1, $usertoken['uname'], 'Created Membership for pid: (' . $player_id . ')');
    if ($presult == 1) {
        return 'Membership Saved';
    } else {
        return 'E88:saving ';
    }
}
Exemple #2
0
function _uploadnewPlayer($file, $membertype_id)
{
    /**
    	# // Method to bulk INSERT NEW players, do some minimum field checks ..
    	# // we expect a ; seperation not a TAB ...
    	# //
    	# // Passnr,Vorname,Nachname,gebdatum,gender,nation,stadt,plz,adresse,tel1,tel2,email,kommentar
    	# // $membertype_id = type of passnumber to search or even generate ...
    	**/
    $passkey = dso_getPassKeyFieldForType($membertype_id);
    $fp = fopen($file, "r");
    echo setPageTitle('Log Output from Bulk IMPORT');
    print "<p>The loader is doing some minimum checks on the expected fieldvalues - rejected entries are shown in <font color=\"red\">red</font>. Please correct the values and reload the file.</p>";
    opentable();
    $l = 0;
    while ($data = fgetcsv($fp, 1000, ";")) {
        $num = count($data);
        $l++;
        if ($num < 3) {
            print "Line {$l} Data too short ...";
            break;
        }
        # default values ...
        # TODO v5 replace with ORM backend ...
        $aP = array();
        $aP['passnr'] = '';
        $aP['firstname'] = '';
        $aP['lastname'] = '';
        $aP['birthdate'] = '1901-01-01';
        $aP['gender'] = 'H';
        $aP['nation'] = '';
        $aP['town'] = '';
        $aP['plz'] = '';
        $aP['street'] = '';
        $aP['tel1'] = '';
        $aP['tel2'] = '';
        $aP['email'] = '';
        $aP['comment'] = 'eGate upload';
        for ($c = 0; $c < $num; $c++) {
            if (strlen($data[$c]) > 0) {
                switch ($c) {
                    case "0":
                        $aP['passnr'] = $data[$c];
                        break;
                    case "1":
                        $aP['firstname'] = $data[$c];
                        break;
                    case "2":
                        $aP['lastname'] = $data[$c];
                        break;
                    case "3":
                        $aP['birthdate'] = $data[$c];
                        break;
                    case "4":
                        $aP['gender'] = $data[$c];
                        break;
                    case "5":
                        $aP['nation'] = $data[$c];
                        break;
                    case "6":
                        $aP['town'] = $data[$c];
                        break;
                    case "7":
                        $aP['plz'] = $data[$c];
                        break;
                    case "8":
                        $aP['street'] = $data[$c];
                        break;
                    case "9":
                        $aP['tel1'] = $data[$c];
                        break;
                    case "10":
                        $aP['tel2'] = $data[$c];
                        break;
                    case "11":
                        $aP['email'] = $data[$c];
                        break;
                    case "12":
                        $aP['comment'] = $data[$c];
                        break;
                }
            } else {
                # use the pre-set defaults ....
            }
        }
        # end for data split
        _InsertUpdatePlayer($aP, $passkey);
    }
    # end while ...
    fclose($fp);
    CloseTable();
}