Skip to content

Commit

Permalink
synkronoi_ainoastaan ominaisuus
Browse files Browse the repository at this point in the history
  • Loading branch information
jonikanerva committed Dec 27, 2016
1 parent 3e5bcb5 commit 8bc8667
Show file tree
Hide file tree
Showing 4 changed files with 63 additions and 8 deletions.
5 changes: 5 additions & 0 deletions aloita_synkronointi.php
Expand Up @@ -83,6 +83,11 @@
exit;
}

if (synkronoi_tarkista_pakolliset($table) === false) {
echo "VIRHE: synkronoi_ainoastaan virheellinen. Pakolliset kentät on pakko synkronoida!";
exit;
}

// rakennetaaan kysely, jolla haetaan pakolliset tiedot molemmista yrityksistä
// ja groupataan niiden mukaan. tällä haetaan "duplikaatit", eli tieto on jo synkronissa
// valittujen yhtiöiden välillä.
Expand Down
61 changes: 53 additions & 8 deletions inc/functions.inc
Expand Up @@ -2521,7 +2521,7 @@ if (!function_exists("synclog")) {
// Konserniyhti�iden tietueiden synkronointi
if (!function_exists("synkronoi")) {
function synkronoi($yhtio, $table, $tunnus, $orig = "", $force = "") {
global $yhtiorow, $kukarow, $synkronoi_kiellot;
global $yhtiorow, $kukarow, $synkronoi_kiellot, $synkronoi_ainoastaan;

// Onko mahdollista synkronoida?
if (stripos($yhtiorow["synkronoi"], $table) === false) {
Expand All @@ -2548,6 +2548,13 @@ if (!function_exists("synkronoi")) {
return false;
}

if (synkronoi_tarkista_pakolliset($table) === false) {
$synclog .= "VIRHE: synkronoi_ainoastaan virheellinen. Pakolliset kent�t on pakko synkronoida!";

synclog($yhtio, $table, $synclog, $tunnus);
return false;
}

// Haetaan master
$query = "SELECT *
FROM $table
Expand Down Expand Up @@ -2584,14 +2591,22 @@ if (!function_exists("synkronoi")) {
if (count($diff) > 0) {

foreach ($diff as $key => $value) {
if (is_string($key) and !in_array($key, array("tunnus", "muuttaja", "muutospvm", "laatija", "luontiaika"))) {
if (isset($synkronoi_kiellot[$table]) and in_array($key, $synkronoi_kiellot[$table])) {
// Ohitetaan t�m� koska se on synkronoi kielloissa
}
else {
$muutokset[$key] .= $value;
}
// ohitetaan aina vakiokent�t
if (in_array($key, array("tunnus", "muuttaja", "muutospvm", "laatija", "luontiaika"))) {
continue;
}

// Ohitetaan t�m� koska se on synkronoi kielloissa
if (isset($synkronoi_kiellot[$table]) and in_array($key, $synkronoi_kiellot[$table])) {
continue;
}

// Ohitetaan jos meill� on asetettuna synkronoi_ainoastaan array, ja kentt� ei l�ydy sielt�
if (!empty($synkronoi_ainoastaan) and !in_array($key, $synkronoi_ainoastaan[$table])) {
continue;
}

$muutokset[$key] .= $value;
}
}

Expand Down Expand Up @@ -3055,6 +3070,36 @@ if (!function_exists("synkronoi")) {
}
}

if (!function_exists("synkronoi_tarkista_pakolliset")) {
function synkronoi_tarkista_pakolliset($table) {
global $synkronoi_ainoastaan;

// jos synkronoi_ainoastaan on tyhj��, homma ok
if (empty($synkronoi_ainoastaan)) {
return true;
}

require_once "inc/pakolliset_sarakkeet.inc";

list($pakolliset, $kielletyt, $wherelliset, $eiyhtiota, $joinattavat, $saakopoistaa, $oletukset, $eisaaollatyhja) = pakolliset_sarakkeet($table);

// hetaan pakolliset ja wherelliset, merget��n ne arrayt
// pakollisten kenttien nimet pienill� kirjaimilla
$indeksi = array_merge($wherelliset, $pakolliset);
$indeksi = array_unique($indeksi);
$indeksi = array_map('strtolower', $indeksi);

// synkronoi_ainoastaan, tulee sis�lt�� ainakin kaikki taulun pakolliset sarakkeet
foreach ($indeksi as $key) {
if (!in_array($key, $synkronoi_ainoastaan[$table])) {
return false;
}
}

return true;
}
}

if (!function_exists("jalkilaskentafunktiolle_ostohinta")) {
function jalkilaskentafunktiolle_ostohinta($otunnus, $rivitunnus) {
global $yhtiorow, $kukarow;
Expand Down
1 change: 1 addition & 0 deletions inc/parametrit.inc
Expand Up @@ -250,6 +250,7 @@ unset($liitetaanko_editilaus_laskulle_hakemisto);

unset($siirrasuoritustilille);
unset($ohjewiki_url);
unset($synkronoi_ainoastaan);
unset($synkronoi_kiellot);
unset($alv_laskelman_sallittu_erotus);
unset($e3_params);
Expand Down
4 changes: 4 additions & 0 deletions inc/yhtion_parametrittarkista.inc
Expand Up @@ -178,6 +178,10 @@ if (!function_exists("yhtion_parametrittarkista")) {
}
$virhe[$i] .= t("Taulu ei kelpaa")." '$taulu' ".t("sallitut taulut ovat")." ".implode(", ", $sallitut);
}

if (synkronoi_tarkista_pakolliset($taulu) === false) {
$virhe[$i] .= "VIRHE: '$taulu' -taulun synkronoi_ainoastaan virheellinen. Pakolliset kentät on pakko synkronoida!";
}
}
}
}
Expand Down

0 comments on commit 8bc8667

Please sign in to comment.