Ejemplo n.º 1
0
                  if ($ultimo_tesdoc) {
                     $lastProtocol = $ultimo_tesdoc['protoc'];
                  }
                  if ($ultimo_tesmov) {
                     if ($ultimo_tesmov['protoc'] > $lastProtocol){
                        $lastProtocol = $ultimo_tesmov['protoc'];
                     }
                  }
                  return $lastProtocol+1;
            }

            $causa = gaz_dbi_get_row($gTables['caucon'],'codice',$form['codcausale']);
            if ($causa['regiva'] > 0) { // trovo l'ultimo numero di protocollo e di documento
               $form['protocollo'] = getLastNumber(substr($form['codcausale'],0,1).'__',$form['date_reg_Y'],$form['sezioneiva'],$causa['regiva']);
               if ($causa['regiva'] <= 5) { // il numero di documento solo se è di vendita
                  $form['numdocumen'] = getLastNumber($form['codcausale'],$form['date_reg_Y'],$form['sezioneiva'],$causa['regiva']);
               }
            }
            if ($causa['regiva'] == 0 and $_POST['registroiva'] > 0) {//se la nuova causale non prevede righi IVA mentre la precedente lo prevedeva, elimino i righi
               for($i=$_POST['rigiva']-1; $i >= 0; $i-- ) { //qui cancello tutti i movimenti IVA
                   array_splice($form['id_rig_ri'],$i,1);
                   array_splice($form['codiva_ri'],$i,1);
                   array_splice($form['imponi_ri'],$i,1);
                   array_splice($form['impost_ri'],$i,1);
               }
            } elseif ($causa['regiva'] > 0 and $_POST['registroiva'] > 0) { //se la nuova causale prevede righi IVA come la precedente li riuso per caricarci le nuove

                     //calcolo il totale dell'imponibile e dell'iva postati
                     $imponi = 0;
                     $impost = 0;
                     for ($i = 0; $i < $_POST['rigiva']; $i++ ) {
Ejemplo n.º 2
0
<?php

define("CARD_NUMBER_LENGTH", 16);
$cardDatas = trim(fgets(STDIN));
$yealyMargin = 0;
for ($i = 0; $i < $cardDatas; $i++) {
    $cardNumber = trim(fgets(STDIN));
    echo getLastNumber($cardNumber) . "\n";
}
/**
 * カード番号の末尾を計算する
 * @param type $cardNumber
 * @return type int
 */
function getLastNumber($cardNumber)
{
    // 偶数桁の数字をそれぞれ2倍し総和をとったものをeven
    $even = 0;
    // 奇数桁の数字の総和をとったものをodd
    $odd = 0;
    // 左から16桁目がXなので15桁目まで計算
    for ($j = 0; $j < CARD_NUMBER_LENGTH - 1; $j++) {
        // 奇数桁
        if ($j % 2 != 0) {
            $odd += $cardNumber[$j];
        } else {
            $even += getCalculatedEvenNumber($cardNumber[$j]);
        }
    }
    // 余りの計算
    $remainder = ($odd + $even) % 10;