Entry 30118
test
Submitted by anonymous
on Jan. 25, 2012 at 5:58 p.m.
Language: PHP. Code size: 4.0 KB.
<?php class myGlobal { public static function unformatCurrency($value, $forceCastToFloat = true) { if (is_array($value)) { $retvals = array(); foreach ($value as $key=>$v) { $retval=str_replace('.', '', $v); $retval=str_replace(',', '.', $retval); $retvals[$key] = (float)$retval; } return $retvals; } $retval=str_replace('.', '', $value); $retval=str_replace(',', '.', $retval); return $forceCastToFloat ? (float)$retval : $retval; } public static function format_currency($amount, $currency = null, $culture = null) { if (is_null($amount)) { return null; } $numberFormat = new sfNumberFormat(myGlobal::_current_language($culture)); return $numberFormat->format($amount, 'c', $currency); } public static function _current_language($culture) { return $culture ? $culture : sfContext::getInstance()->getUser()->getCulture(); } public static function stripText($text, $separator = '_') { // convert special characters $text = utf8_decode($text); $text = htmlentities($text); $text = preg_replace('/&([a-zA-Z])(uml|acute|grave|circ|tilde);/', '$1', $text); $text = html_entity_decode($text); $text = strtolower($text); // strip all non word chars $text = preg_replace('/\W/', ' ', $text); // replace all white space sections with a separator $text = preg_replace('/\ +/', $separator, $text); // trim separators $text = trim($text, $separator); //$text = preg_replace('/\-$/', '', $text); //$text = preg_replace('/^\-/', '', $text); return $text; } public static function bulatkan100($value) { $value = $value / 100; $value= round($value); $value = $value * 100; return $value; } /*fungsi buat ngebandingin dua nilai double * notes: jangan ngebandingin nilai double pake == or >=... ???? * (taken from code project) * */ public static function AlmostEqualDoubles2($nVal1, $nVal2, $nEpsilon) { $bRet = ((($nVal2 - $nEpsilon) < $nVal1) && ($nVal1 < ($nVal2 + $nEpsilon))); return $bRet; } //TODO: Pindah ke model kontrak public static function getProgressAndJumlahBayarTerminKe($kontrak, $termin_ke = 0) { $i = 1; $tmp_fisik = 0.0; $progress_termin = 0.0; $progress_termins = array(); $pembayaran_kontrak = $kontrak->getPembayaranKontrak(); $fisiks = $pembayaran_kontrak->getPersentaseFisikAsArray(); $harus_bayars = $pembayaran_kontrak->getStringTotalNominalAsArray(); $konfirmasi_bayars = $kontrak->getKonfirmasiBayars(); $termin_yg_sudah_dibayars = array(); foreach ($konfirmasi_bayars as $v) { $termin_yg_sudah_dibayars[] = $v->getTerminKe(); } //buat kumulatif pembayaran aturan pembayaran $kumulatifs = array(); foreach ($fisiks as $v) { $tmp_fisik += $v; if ($tmp_fisik > 100) $tmp_fisik = 100; $kumulatifs[] = $tmp_fisik; } foreach ($kontrak->getKontrakProgressMingguans() as $v) { $progress_termin += $v->getBobot(); if (!isset($kumulatifs[0])) break; if (self::AlmostEqualDoubles2($progress_termin, $kumulatifs[0], 0.001) || $progress_termin > $kumulatifs[0]) { if ($progress_termin > 100 || $progress_termin > 99.999) $progress_termin = 100; $jj = 0; while (true) { array_shift($kumulatifs); $progress_termins[] = array('termin_ke'=>$i,'progress'=>$progress_termin,'jumlah'=>$harus_bayars[$i-1],'status'=>in_array($i, $termin_yg_sudah_dibayars)); if ($termin_ke > 0 && $i == $termin_ke) return $progress_termins[$i-1]; if ($i++ >= $pembayaran_kontrak->getJumlahTermin()) break; if (!isset($kumulatifs[$jj])) break; if ($progress_termin < $kumulatifs[$jj]) break; $jj++; } } } return $progress_termins; } public static function myFloor($v) { return floor((string)$v); } public static function myCeil($v) { return ceil((string)$v); } /*public static function formatUrlFromParameters($uri, $prms) { $url = url_for($uri); if (count($prms) > 0) { $url = $url."?".http_build_query($prms, '', '&'); } return $url; }*/ } ?>
This snippet took 0.02 seconds to highlight.
Back to the Entry List or Home.