function populoi_kassalipas_muuttujat_kassakohtaisesti($_post) { $kassalippaat = array(); $kassalippaan_indeksi = null; $monisoluisen_indeksi_array = null; $kortin_indeksi = null; foreach ($_post as $kentan_nimi => $kentan_arvo) { if (stristr($kentan_nimi, 'tyyppi_pohjakassa')) { //tämä hoitaa käteismyynti kassalippaat preg_match_all('!\\d+!', $kentan_nimi, $kassalippaan_indeksi); $kassalippaan_nimi = $_post['tyyppi_pohjakassa' . $kassalippaan_indeksi[0][0]]; $kassalipas = hae_kassalipas($kassalippaan_nimi); $kassalippaan_tunnus = $kassalipas['tunnus']; foreach ($_post as $etsi_kassalipas_nimi => $etsi_kassalipas_arvo) { //etsitään kassalippaalle kuuluvat tilitys arvot if (strstr($etsi_kassalipas_nimi, $kassalippaan_indeksi[0][0])) { if (!stristr($etsi_kassalipas_nimi, 'solu') and !stristr($etsi_kassalipas_nimi, 'kateisotto') and !stristr($etsi_kassalipas_nimi, 'kateistilitys')) { //yksisoluiset halutaan tallentaa ilman perästä löytyvää indeksiä $kassalippaat[$kassalippaan_tunnus][preg_replace("/[0-9]/", "", $etsi_kassalipas_nimi)] = $etsi_kassalipas_arvo; } else { //monisoluisiin halutaan 1, 11 ,111 indeksin sijaan 1, 2, 3 jne. preg_match_all('!\\d+!', $etsi_kassalipas_nimi, $monisoluisen_indeksi_array); $monisoluisen_indeksi = strlen($monisoluisen_indeksi_array[0][0]); $solun_nimi = preg_replace("/[0-9]/", "", $etsi_kassalipas_nimi) . $monisoluisen_indeksi; $kassalippaat[$kassalippaan_tunnus][$solun_nimi] = $etsi_kassalipas_arvo; } } } } elseif (stristr($kentan_nimi, 'maksutapa')) { //tämä hoitaa pankki ja luottokortit, jotka eivät ole kassa kohtaisia if (stristr($kentan_arvo, 'pankkikortti') or stristr($kentan_arvo, 'luottokortti')) { $kortin_nimi = explode('#', $kentan_arvo); $kortin_nimi = $kortin_nimi[0]; preg_match_all('!\\d+!', $kentan_nimi, $kortin_indeksi); foreach ($_post as $etsi_kortti_nimi => $etsi_kortti_arvo) { //etsitään kassalippaalle kuuluvat tilitys arvot if (strstr($etsi_kortti_nimi, $kortin_indeksi[0][0])) { //monisoluisiin halutaan 1, 11 ,111 indeksin sijaan 1, 2, 3 jne. preg_match_all('!\\d+!', $etsi_kortti_nimi, $monisoluisen_indeksi_array); $monisoluisen_indeksi = strlen($monisoluisen_indeksi_array[0][0]); $solun_nimi = preg_replace("/[0-9]/", "", $etsi_kortti_nimi) . $monisoluisen_indeksi; $kassalippaat[$kortin_nimi][$solun_nimi] = str_replace('##', '', $etsi_kortti_arvo); } } } } } return $kassalippaat; }
$tapahtumapaiva = date('Y-m-d'); } // Haetaan laskun tiedot $laskurow = hae_lasku($tunnus); if (strtotime($tapahtumapaiva) < strtotime($laskurow['tapvm'])) { $laskupvmerror = TRUE; } if ($toim == 'KATEINEN' and $laskurow['mapvm'] != '0000-00-00') { $laskumaksettuerror = TRUE; } $tilikausi = tarkista_saako_laskua_muuttaa($tapahtumapaiva); $tilikausi_lasku = tarkista_saako_laskua_muuttaa($laskurow['tapvm']); if (empty($tilikausi) and (empty($tilikausi_lasku) or $toim == 'KATEINEN') and !$laskupvmerror and !$laskumaksettuerror) { $mehtorow = hae_maksuehto($maksuehto); $konsrow = hae_asiakas($laskurow); $kassalipasrow = hae_kassalipas($kassalipas); $params = array('konsrow' => $konsrow, 'mehtorow' => $mehtorow, 'laskurow' => $laskurow, 'maksuehto' => $maksuehto, 'tunnus' => $tunnus, 'toim' => $toim, 'tapahtumapaiva' => $tapahtumapaiva, 'kassalipas' => $kassalipas); if ($toim == 'KATEINEN' and $kateinen != '') { // Lasku oli ennestään käteinen ja nyt päivitetään sille joku toinen käteismaksuehto list($myysaatili, $_tmp) = hae_kassalippaan_tiedot($laskurow['kassalipas'], hae_maksuehto($laskurow['maksuehto']), $laskurow); $_tmp = korjaa_erapaivat_ja_alet_ja_paivita_lasku($params); } else { $myysaatili = korjaa_erapaivat_ja_alet_ja_paivita_lasku($params); } list($_kassalipas, $kustp) = hae_kassalippaan_tiedot($kassalipas, $mehtorow, $laskurow); $params = array('laskurow' => $laskurow, 'tunnus' => $tunnus, 'myysaatili' => $myysaatili, 'tapahtumapaiva' => $tapahtumapaiva, 'toim' => $toim, '_kassalipas' => $_kassalipas, 'kateinen' => $kateinen, 'kustp' => $kustp); tee_kirjanpito_muutokset($params); yliviivaa_alet_ja_pyoristykset($tunnus); tarkista_pyoristys_erotukset($laskurow, $tunnus); if ($toim == 'KATEINEN') { vapauta_kateistasmaytys($kassalipasrow, $tapahtumapaiva);
$request_params = array('kassalipas' => $kassalipas_tunnus, 'kateisotto_rivi' => $kateisotto_rivi, 'yleinen_kommentti' => $yleinen_kommentti, 'userfile' => $userfile, 'kuvaselite' => $kuvaselite, 'pp' => $pp, 'kk' => $kk, 'vv' => $vv, 'date' => "{$vv}-{$kk}-{$pp}"); if ($tee == 'kateisotto') { $date = "{$vv}-{$kk}-{$pp}"; $validoi_date = validoi_tapahtumapaiva($pp, $kk, $vv); $voiko_kateisoton_tehda = $validoi_date ? tarkista_saako_laskua_muuttaa($date) : false; if ($voiko_kateisoton_tehda) { $voiko_kateisoton_tehda = validoi_liitetiedosto($_FILES); if ($voiko_kateisoton_tehda and count($request_params['kateisotto_rivi']) == 0) { echo "<br><font class='error'>" . t("Käteisotolla ei ollut yhtään riviä") . "!</font><br><br>"; $voiko_kateisoton_tehda = false; } if ($voiko_kateisoton_tehda) { //tehdään käteisotto // //haetaan kassalipas row $kassalipas = hae_kassalipas($kassalipas_tunnus); //tarkistetaan, onko kassalipas jo täsmäytetty $kassalippaan_tasmaytys = tarkista_kassalippaan_tasmaytys($kassalipas['tunnus'], $date); if ($kassalippaan_tasmaytys['ltunnukset'] != '' and $kassalippaan_tasmaytys['selite'] != '') { $voiko_kateisoton_tehda = vapauta_kateistasmaytys($kassalipas, $date); } if ($voiko_kateisoton_tehda) { $lasku_tunnus = tee_kateisotto($kassalipas, $request_params); echo "<br><font class='message'>" . t("Käteisotto tehtiin onnistuneesti") . "!</font><br><br>"; if (!empty($lasku_tunnus) and is_uploaded_file($_FILES['userfile']['tmp_name'])) { tallenna_liite("userfile", "lasku", $lasku_tunnus, $request_params['kuvaselite'], "", 0, 0, ""); } } } } else { echo $validoi_date ? "<font class='error'>" . t("VIRHE: Tilikausi on päättynyt %s. Et voi merkitä laskua maksetuksi päivälle %s", "", $yhtiorow['tilikausi_alku'], "{$vv}-{$kk}-{$pp}") . "!</font>" : "";