AASDADS f. bankowy_make_nrach($NR_RACH_MASS_PAY,$ID_BILLING_USERS,$ID_BILLING_NUMBERS)
"; $ID_BILLING_USERS = str_pad($ID_BILLING_USERS, 10, 0, STR_PAD_LEFT); $ID_BILLING_NUMBERS = str_pad($ID_BILLING_NUMBERS, 2, 0, STR_PAD_LEFT); $ID_BILLING_NUMBERS = substr($ID_BILLING_NUMBERS, -2); $NN = self::bankowy_make($NR_RACH_MASS_PAY . $ID_BILLING_NUMBERS . $ID_BILLING_USERS); if ($NN) return $NN . $NR_RACH_MASS_PAY . $ID_BILLING_NUMBERS . $ID_BILLING_USERS; } public static function bankowy_make($nrb) { $nrb = preg_replace("/[^0-9]/", "", $nrb); if (strlen($nrb) <> 24) return 0; $nrb .= "252100"; $modulo = self::my_bcmod($nrb, 97); $modulo = 98 - $modulo; if (strlen($modulo) == 1) { $modulo = "0" . $modulo; } return $modulo; } public static function my_bcmod($x, $y) { // how many numbers to take at once? carefull not to exceed (int) $take = 5; $mod = ''; do { $a = (int)$mod . substr($x, 0, $take); $x = substr($x, $take); $mod = $a % $y; } while (strlen($x)); return (int)$mod; } public static function bankowy_formatuj_nrach($NR_RACH_MASS_PAY) { $NR_RACH_MASS_PAY_FORMATTED = ''; if ($NR_RACH_MASS_PAY) { for ($i = 4; $i < strlen($NR_RACH_MASS_PAY); $i += 4) { $NR_RACH_MASS_PAY_FORMATTED = " " . substr($NR_RACH_MASS_PAY, -$i, 4) . $NR_RACH_MASS_PAY_FORMATTED; } $NR_RACH_MASS_PAY_FORMATTED = substr($NR_RACH_MASS_PAY, 0, $i - strlen($NR_RACH_MASS_PAY)) . " " . $NR_RACH_MASS_PAY_FORMATTED; } return $NR_RACH_MASS_PAY_FORMATTED; } public static function policz($l,$t1,$t2,$t3) { $j = array("", "jeden ", "dwa ", "trzy ", "cztery ", "pięć ", "sześć ", "siedem ", "osiem ", "dziewięć ", "dziesięć ", "jedenaście ", "dwanaście ", "trzynaście ", "czternaście ", "piętnaście ", "szesnaście ", "siedemnaście ", "osiemnaście ", "dziewiętnaście "); $d = array("", "", "dwadzieścia ", "trzydzieści ", "czterdzieści ", "pięćdziesiąt ", "sześćdziesiąt ", "siedemdziesiąt ", "osiemdziesiąt ", "dziewięćdziesiąt "); $s = array("","sto ", "dwieście ", "trzysta ", "czterysta ", "pięćset ", "sześćset ", "siedemset ", "osiemset ", "dziewięćset "); $txt = $s[0+substr($l,0,1)]; if (substr($l,1,2)<20) { $txt .= $j[0+substr($l,1,2)]; } else { $txt .= $d[0+substr($l, 1,1)].$j[0+substr($l, 2,1)]; } if ($l<>0) { if ($l==1) { $txt .= "$t1 "; } else { if ((substr($l,2,1)==2 or substr($l,2,1)==3 or substr($l,2,1)==4) and (substr($l,1,2)>20 or substr($l,1,2)<10)) { $txt .= "$t2 "; } else { $txt .= "$t3 "; } } } return $txt; } public static function slownie($liczba) { $txt = ''; $kwota = explode(".", $liczba); if (strlen($kwota[1])==1) $kwota[1] = $kwota[1]."0"; $kwotazl = sprintf("%012d",$kwota[0]); $kwotagr = sprintf("%03d",$kwota[1]); $txt .= self::policz(substr($kwotazl, 0,3),"miliard","miliardy","miliardów"); $txt .= self::policz(substr($kwotazl, 3,3),"milion","miliony","milionów"); $txt .= self::policz(substr($kwotazl, 6,3),"tysiąc","tysiące","tysięcy"); $txt .= self::policz(substr($kwotazl, 9,3),"złoty","złote","złotych"); if ($kwotazl==0) $txt .= "zero złotych "; $txt .= " i "; $txt .= self::policz($kwotagr,"grosz","grosze","groszy"); if ($kwotagr==0) $txt .= "zero groszy"; return $txt; } public static function formatuj_grosze($kwota) { $kwota = round($kwota, 2); $liczba = explode(".", $kwota); if (!$liczba[1]) { $liczba = explode(",", $kwota); if (!$liczba[1]) $liczba[1] = "00"; } if (strlen($liczba[1]) == 1) $liczba[1] = $liczba[1] . "0"; $liczba_out = $liczba[0] . "." . "$liczba[1]"; return $liczba_out; } public static function billing_billwiev_przeterminowania($ID_BILLING_USERS_PARAM, $IF_PRINT_PARAM, $ECHO_PARAM) { global $vdb , $STOPA_ODSETEK // from billing-l1/www/config.php , $form_mail_sender // billing-l1/www/config.php:24:$form_mail_sender="/usr/bin/mutt"; , $form_send_from_param // billing-l1/www/config.php:19:$form_send_from_param="biall-net@biall.net.pl"; ; //NAGLOWKI DO HTML MAILA $naglowki = "From: ".$form_send_from_param."\r\n"; $naglowki .= "MIME-Version: 1.0\r\n"; $naglowki .= "Content-type: text/html; charset=iso-8859-1\r\n"; //PODRECZNE_ZAPYTANIE_SLOWNIKOWE_DO_TYPOW_DOKUMENTOW $BNT = array(); $bnt_types = Windykacja_StatsModel::get_billing_types(); foreach ($bnt_types as $k_type_id => $h_type) { $BNT[$h_type['ID']] = $h_type['TYPE']; } echo'
bnt_types: ';print_r($bnt_types);echo'
'; echo'
BNT: ';print_r($BNT);echo'
'; if ($_GET['ID_BILLING_USERS_PARAM']) $ID_BILLING_USERS_PARAM = $_GET['ID_BILLING_USERS_PARAM']; if (!$IF_PRINT_PARAM && !$ECHO_PARAM) { echo'

'; echo""; echo"\"Zadłużenia\""; echo"Druki wezwania do zaplaty"; echo""; echo'

'; } $user_id = $ID_BILLING_USERS_PARAM; $billing_account_files = Windykacja_StatsModel::get_billing_account_files($user_id); echo'
billing_account_files: ';print_r($billing_account_files);echo'
'; die('F.' . __FUNCTION__ . ' ...'); $NAGLOWEK = ""; //while ($BAF = $vdb->sql_fetchrow($result)) { foreach ($billing_account_files as $BAF) { //RESETUJEMY FORM - jak nie chcemy pojedynczego odczytu: if (!$ID_BILLING_USERS_PARAM) unset($FORM); if (!$LAST_PLATNIK) $LAST_PLATNIK = $BAF[1]; if (!$LPD) $LPD = $BAF; if (($BAF[0] <> $LAST_ID)) {// ID //DRUKUJEMY_STARE_PODSUMOWANIE (DLA_FAKTURY POJEDYNCZEJ) if ($LAST_ID) { $FORM_2.=""; $FORM_S.= ""; $LDNI = floor((date("U") - $DOC_TERM) / 86400) ; if(($LDNI>0) && ($DOC_TERM) && ($LTOTAL['WINIEN_MA'] == "WINIEN")) { $LODSETKI= self::formatuj_grosze($LTOTAL[$LTOTAL[WINIEN_MA]] * $STOPA_ODSETEK * $LDNI / 365); $POD_ODSETEK=$LTOTAL[$LTOTAL['WINIEN_MA']]; $PLATNIK_DATA['PRZETER']['ODSETKI'] += $LODSETKI; $PLATNIK_DATA['PRZETER']['WINIEN'] += $LTOTAL[$LTOTAL['WINIEN_MA']]; } else { unset($LODSETKI); unset($LDNI); unset($POD_ODSETEK); } $FORM_2.= ""; $FORM_2.= ""; $FORM_S.= ""; // if(!$PLATNIK_DATA[TOTAL][WINIEN]) $PLATNIK_DATA[TOTAL][WINIEN]+=self::formatuj_grosze($LTOTAL[WINIEN]) ; // if(!$PLATNIK_DATA[TOTAL][MA]) $PLATNIK_DATA[TOTAL][MA]+=self::formatuj_grosze($LTOTAL[MA]) ; $FORM_2.= ""; $FORM_2.= ""; $FORM_S.=""; $TOTAL[WINIEN]+=$LTOTAL[WINIEN] ; $TOTAL[MA]+=$LTOTAL[MA] ; if ($LAST_PLATNIK <> $BAF[1]) {//PODSUMOWANIE_DLA_PLATNIKA $TOTAL[PRZETER]+=$PLATNIK_DATA[PRZETER][WINIEN]; $TOTAL[ODSETKI]+=$PLATNIK_DATA[PRZETER][ODSETKI]; $FORM_2.= "
PłatnikWINIENMADOKNumer(T)ermin pł./(D)ata ksiegowania Dni przeterminowaniaKwota przeterminowanaOdsetki
".self::formatuj_grosze($LTOTAL[WINIEN])."".self::formatuj_grosze($LTOTAL[MA])."
".self::formatuj_grosze($LTOTAL[WINIEN])."".self::formatuj_grosze($LTOTAL[MA])."$LDNI$POD_ODSETEK$LODSETKI---------


Podsumowanie salda niezbilansowanych zobowiązań dla platnika $LAST_PLATNIK $LPD[P_NAME] $LPD[P_NAME_SECOND] $LPD[P_ADDRESS_CITY] $LPD[P_ADDRESS_STREET] $LPD[P_ADDRESS_HOUSE] $LPD[P_ADDRESS_HOME]
WINIEN: ".$PLATNIK_DATA[TOTAL][WINIEN]." - MA: ".$PLATNIK_DATA[TOTAL][MA]." DO ZAPŁATY: ".self::formatuj_grosze($PLATNIK_DATA[TOTAL][WINIEN]-$PLATNIK_DATA[TOTAL][MA])." " ; if($PLATNIK_DATA[PRZETER][WINIEN]) $FORM_2.=", z czego przeterminowane ".self::formatuj_grosze($PLATNIK_DATA[PRZETER][WINIEN])." "; if($PLATNIK_DATA[PRZETER][ODSETKI]) $FORM_2.= " ( aktualnie nalezne odsetki to ".$PLATNIK_DATA[PRZETER][ODSETKI]." PLN , które mogą zostać naliczone ) " ; if($LPD[BA_TIMESTAMP]) $FORM_2.="
Stan wzajemnych rozrachunków: WINIEN: $LPD[BA_WINIEN] - MA: $LPD[BA_MA] SALDO(DO ZAPŁATY): ".self::formatuj_grosze($LPD[BA_WINIEN]-$LPD[BA_MA])." , i jest to stan na dzień ".date("Y-m-d",$LPD['BA_TIMESTAMP'])." "; $RETURN_ARR=""; $FORM_S.="
"; $FORM_2.="
W razie problemów prosimy o kontakt z biurem obsługi.
webone billing system ©2004 by Arkadiusz Binder & www.grafnet.pl | finance module by A.Binder "; $FORM_2.= " "; $FORM_2 = "{$NAGLOWEK} \n {$FORM_2}"; $FORM_S= "{$NAGLOWEK} \n {$FORM_S}"; if ($IF_PRINT_PARAM) { $delivery_subject="Stan rozrachunków dla {$LPD[P_NAME]} {$LPD[P_NAME_SECOND]}" ; $sql2="insert into HIST_CONTACTS (ID_BILLING_USERS,ID_BILLING_NUMBERS,SUBJECT,BODY_HTML,REQUEST_STATUS_MAIL) values ('".$LAST_PLATNIK."','','{$delivery_subject}','{$FORM_2}','CONFIRM_SENT_MAIL') "; $res = $vdb->sql_query($sql2) ; echo "
$sql2
****"; } else if (!$ECHO_PARAM) { echo $FORM_2; } $LAST_PLATNIK=$BAF[1]; unset($PLATNIK_DATA); $FORM.=$FORM_2 ; unset($FORM_2); $FORM_SS.=$FORM_S ; unset($FORM_S); } else { } //$PLATNIK_DATA[TOTAL][WINIEN]+=$BAF[2]; //$PLATNIK_DATA[TOTAL][MA]+=$BAF[3]; $LPD = $BAF; $LAST_PLATNIK = $BAF[1]; } else { } //DODAJEMY_NOWY_REKORD_OD_SAMEJ_PLATNOSCI unset($LTOTAL); $FORM_2.= "$BAF[1]$BAF[2]$BAF[3]".$BNT[$BAF[4]]."$BAF[5]/$BAF[6] "; if ($BAF[19]) $FORM_2.="T: ".date("Y-m-d",$BAF[19])." "; else $FORM_2.="D: ".date("Y-m-d",$BAF['BAF_TIMESTAMP'])." "; $FORM_2.=""; $FORM_S.= "$BAF[1]$BAF[2]$BAF[3]".$BNT[$BAF[4]]."$BAF[5]/$BAF[6] "; if($BAF[19])$FORM_S.="T: ".date("Y-m-d",$BAF[19])." "; else $FORM_2.="D: ".date("Y-m-d",$BAF['BAF_TIMESTAMP'])." "; $FORM_S.=""; $DOC_TERM = $BAF[19]; if ($BAF[2] > 0) $LTOTAL['WINIEN_MA'] = "WINIEN"; else $LTOTAL['WINIEN_MA'] = "MA"; $LTOTAL[$LTOTAL['WINIEN_MA']] = $BAF[2] + $BAF[3]; } else { //DRUKUJEMY_PODSTUMOWANIE_STAREGO i ZAPODAJEMY NOWY_REKORD } if ($BAF[12]) {// ID_FIN_WINIEN_VAL $FORM_2.= ""; $FORM_S.= ""; if($LTOTAL['WINIEN_MA']=="MA") { $FORM_2.= " $BAF[12] "; $FORM_2.= ""; $FORM_S.=" $BAF[12] "; } else { $FORM_2.= ""; $FORM_2.= " $BAF[12] "; $FORM_S.=" $BAF[12] "; } $FORM_2.= "".$BNT[$BAF[8]].""; $FORM_2.= " $BAF[9]/$BAF[10] D: ".date("Y-m-d",$BAF[11])." "; $FORM_S.= "".$BNT[$BAF[8]].""; $FORM_S.= " $BAF[9]/$BAF[10] D: ".date("Y-m-d",$BAF[11])." "; $LDNI = floor(($BAF[11] - $DOC_TERM) / 86400); if (($LDNI > 0) && ($DOC_TERM) && ($LTOTAL['WINIEN_MA'] == "WINIEN")) { $DOC_TERM = $BAF[11]; $LODSETKI = self::formatuj_grosze($LTOTAL[$LTOTAL['WINIEN_MA']] * $STOPA_ODSETEK * $LDNI / 365); $POD_ODSETEK = $LTOTAL[$LTOTAL['WINIEN_MA']]; $PLATNIK_DATA['PRZETER']['ODSETKI'] += $LODSETKI; } else { unset($LODSETKI); unset($LDNI); unset($POD_ODSETEK); } $FORM_2.= "$LDNI$POD_ODSETEK"; $FORM_2.= "$LODSETKI"; $FORM_2.= ""; $FORM_S.="---------"; $LTOTAL[$LTOTAL['WINIEN_MA']] -= $BAF[12]; } if ($BAF[18]) {// ID_FIN_MA_VAL $FORM_2.= ""; $FORM_S.= ""; if ($LTOTAL['WINIEN_MA'] == "MA") { $FORM_2.= " $BAF[18] "; $FORM_2.= ""; $FORM_S.= " $BAF[18] "; } else { $FORM_2.= ""; $FORM_2.= " $BAF[18] "; $FORM_S.=" $BAF[18] "; } $FORM_2.= "".$BNT[$BAF[14]].""; $FORM_2.= " $BAF[15]/$BAF[16] D: ".date("Y-m-d",$BAF[17])." "; $FORM_S.="".$BNT[$BAF[14]]." $BAF[15]/$BAF[16] D: ".date("Y-m-d",$BAF[17])." "; $LDNI=floor(($BAF[17] - $DOC_TERM) / 86400) ; // $LDNI=10; if (($LDNI > 0) && ($DOC_TERM) && ($LTOTAL['WINIEN_MA'] == "WINIEN")) { $LODSETKI = self::formatuj_grosze($LTOTAL[$LTOTAL[WINIEN_MA]] * $STOPA_ODSETEK * $LDNI / 365); $POD_ODSETEK = $LTOTAL[$LTOTAL['WINIEN_MA']]; $PLATNIK_DATA['PRZETER']['ODSETKI'] += $LODSETKI; } else { unset($LODSETKI); unset($LDNI); unset($POD_ODSETEK); } $FORM_2.= "$LDNI$POD_ODSETEK"; $FORM_S.= "$LDNI$POD_ODSETEK"; $FORM_2.= "$LODSETKI"; $FORM_S.= "$LODSETKI"; $FORM_2.= ""; $FORM_S.= ""; $LTOTAL[$LTOTAL['WINIEN_MA']]-=$BAF[18] ; } $LAST_ID = $BAF[0]; $L_BAF = $BAF; }//eof SQL while($BAF=$vdb->sql_fetchrow($result)) { //DODANIE_ZESTAWIENIA KOPIA_Z_GORY //DRUKUJEMY_STARE_PODSUMOWANIE (DLA_FAKTURY POJEDYNCZEJ) if ($LAST_ID) { $FORM_2.="".self::formatuj_grosze($LTOTAL['WINIEN'])."".self::formatuj_grosze($LTOTAL['MA']).""; $FORM_S.="".self::formatuj_grosze($LTOTAL['WINIEN'])."".self::formatuj_grosze($LTOTAL['MA']).""; $LDNI = round((date("U") - $DOC_TERM) / 86400, 0); if (($LDNI > 0) && ($DOC_TERM)) { $LODSETKI = self::formatuj_grosze($LTOTAL[$LTOTAL['WINIEN_MA']] * $STOPA_ODSETEK * $LDNI / 365); $POD_ODSETEK = $LTOTAL[$LTOTAL['WINIEN_MA']]; $PLATNIK_DATA['PRZETER']['ODSETKI'] += $LODSETKI ; $PLATNIK_DATA['PRZETER']['WINIEN'] += $LTOTAL[$LTOTAL['WINIEN_MA']]; } else { unset($LODSETKI); unset($LDNI); unset($POD_ODSETEK); } $FORM_2.= "$LDNI".self::formatuj_grosze($POD_ODSETEK).""; $FORM_2.= "$LODSETKI"; $FORM_S.="---------"; // if(!$PLATNIK_DATA[TOTAL]['WINIEN']) $PLATNIK_DATA['TOTAL']['WINIEN']+=self::formatuj_grosze($LTOTAL['WINIEN']) ; // if(!$PLATNIK_DATA[TOTAL][MA]) $PLATNIK_DATA['TOTAL']['MA']+=self::formatuj_grosze($LTOTAL['MA']) ; $FORM_2.= ""; $FORM_2.= "
"; $FORM_S.="
"; $TOTAL['WINIEN']+=$LTOTAL['WINIEN'] ; $TOTAL['MA']+=$LTOTAL['MA'] ; if ($LAST_PLATNIK <> $BAF[1]) {//PODSUMOWANIE_DLA_PLATNIKA $TOTAL['PRZETER'] += $PLATNIK_DATA['PRZETER']['WINIEN']; $TOTAL['ODSETKI'] += $PLATNIK_DATA['PRZETER']['ODSETKI']; if (!$LPD) $LPD = $L_BAF ; $FORM_2.= "Podsumowanie salda niezbilansowanych zobowiązań dla platnika $LAST_PLATNIK $LPD[P_NAME] $LPD[P_NAME_SECOND] $LPD[P_ADDRESS_CITY] $LPD[P_ADDRESS_STREET] $LPD[P_ADDRESS_HOUSE] $LPD[P_ADDRESS_HOME]
WINIEN: ".$PLATNIK_DATA['TOTAL']['WINIEN']." - MA: ".$PLATNIK_DATA['TOTAL']['MA']." DO ZAPŁATY: ".self::formatuj_grosze($PLATNIK_DATA['TOTAL']['WINIEN']-$PLATNIK_DATA['TOTAL']['MA'])." " ; if ($PLATNIK_DATA['PRZETER']['WINIEN']) $FORM_2.=", z czego przeterminowane ".self::formatuj_grosze($PLATNIK_DATA['PRZETER']['WINIEN'])." "; if ($PLATNIK_DATA['PRZETER']['ODSETKI']) $FORM_2.= " ( aktualnie nalezne odsetki to ".$PLATNIK_DATA['PRZETER']['ODSETKI']." PLN , które mogą zostać naliczone ) " ; if ($LPD['BA_TIMESTAMP']) $FORM_2.="
Stan wzajemnych rozrachunków: WINIEN: ".$LPD['BA_WINIEN']." - MA: ".$LPD['BA_MA']." SALDO(DO ZAPŁATY): ".self::formatuj_grosze($LPD['BA_WINIEN']-$LPD['BA_MA'])." , i jest to stan na dzień ".date("Y-m-d",$LPD['BA_TIMESTAMP'])." "; $RETURN_ARR=""; $FORM_S.=""; $FORM_2.="
W razie problemów prosimy o kontakt z biurem obsługi.
webone billing system ©2004 by Arkadiusz Binder & www.grafnet.pl | finance module by A.Binder "; $FORM_2.= " "; $FORM_2 = "{$NAGLOWEK} \n {$FORM_2}"; $FORM_S = "{$NAGLOWEK}{$FORM_S}"; //DRUKOWANIE ZESTAWIENIA if ($IF_PRINT_PARAM) { $delivery_subject="Stan rozrachunków dla {$LPD['P_NAME']} {$LPD['P_NAME_SECOND']}" ; // exec("echo \"Pliki zostały dołączone do załącznika\" | $form_mail_sender -n -a \"$filename\" $delivery_mail -s ".$delivery_subject."" ); $sql2="insert into HIST_CONTACTS (ID_BILLING_USERS,ID_BILLING_NUMBERS,SUBJECT,BODY_HTML,REQUEST_STATUS_MAIL) values ('".$LAST_PLATNIK."','','{$delivery_subject}','{$FORM_2}','CONFIRM_SENT_MAIL') "; $res = $vdb->sql_query($sql2); echo "
{$sql2}
***"; } else if (!$ECHO_PARAM) { echo $FORM_2; } //EOF DRUKOWANIE ZESTAWIENIA itp $LAST_PLATNIK = $BAF[1]; $ECHO_DATA=$PLATNIK_DATA; unset($PLATNIK_DATA); $FORM .= "{$FORM_2}"; $FORM_SS .= "{$FORM_S}"; unset($FORM_2); unset($FORM_S); } } $FORM_2.= $NAGLOWEK; $FORM_2.= "TOT{$TOTAL['WINIEN']}{$TOTAL['MA']} {$TOTAL['PRZETER']}{$TOTAL['ODSETKI']}"; $FORM_2 .= ""; if (!$ECHO_PARAM) echo "{$FORM_2}"; $FORM_S.= " "; if ($ECHO_PARAM == "zadluzenie") return self::formatuj_grosze($ECHO_DATA['PRZETER']['WINIEN']); if ($ECHO_PARAM == "saldo") return self::formatuj_grosze($LPD['BA_WINIEN']-$LPD['BA_MA']); if ($ECHO_PARAM == "zadluzenie_lista") return $FORM; if ($ECHO_PARAM == "saldo_rok") { $L_BAF['FORM'] = $FORM; $L_BAF['FORM_SALDO'] = $FORM_SS; return $L_BAF; } } }