Location: PHPKode > projects > GAzie - Gestione Aziendale > gazie/library/include/calsca.inc.php
<?php
 /* $Id: calsca.inc.php,v 1.8 2010/01/21 11:16:33 devincen Exp $
 --------------------------------------------------------------------------
                            Gazie - Gestione Azienda
    Copyright (C) 2004-2010 - Antonio De Vincentiis Montesilvano (PE)
                                (www.devincentiis.it)
                        <http://gazie.sourceforge.net>
 --------------------------------------------------------------------------
    Questo programma e` free software;   e` lecito redistribuirlo  e/o
    modificarlo secondo i  termini della Licenza Pubblica Generica GNU
    come e` pubblicata dalla Free Software Foundation; o la versione 2
    della licenza o (a propria scelta) una versione successiva.

    Questo programma  e` distribuito nella speranza  che sia utile, ma
    SENZA   ALCUNA GARANZIA; senza  neppure  la  garanzia implicita di
    NEGOZIABILITA` o di  APPLICABILITA` PER UN  PARTICOLARE SCOPO.  Si
    veda la Licenza Pubblica Generica GNU per avere maggiori dettagli.

    Ognuno dovrebbe avere   ricevuto una copia  della Licenza Pubblica
    Generica GNU insieme a   questo programma; in caso  contrario,  si
    scriva   alla   Free  Software Foundation,  Inc.,   59
    Temple Place, Suite 330, Boston, MA 02111-1307 USA Stati Uniti.
 --------------------------------------------------------------------------
*/

// questa funzione  serve solo per mantenere la compatibilità con le versioni precedenti NON USARE
// sui nuovi script usare direttamente la funzione CalcExpiry contenuta nella classe Expiry in expiry_calc.php
//
require("../../library/include/expiry_calc.php");
function CalcolaScadenze($totpag,$giorno,$mese,$anno,$tipdec,$giodec,$numrat,$tiprat,$mesesc,$giosuc)
    {
     $ex= new Expiry;
     $rs_array=$ex->CalcExpiry($totpag,$anno.'-'.$mese.'-'.$giorno,$tipdec,$giodec,$numrat,$tiprat,$mesesc,$giosuc);
     $acc=array();
     foreach($rs_array as $k=>$v){
       $k--;
       $acc['import'][$k]=$v['amount'];
       $acc['giorno'][$k]=substr($v['date'],8,2);
       $acc['mese'][$k]=substr($v['date'],5,2);
       $acc['anno'][$k]=substr($v['date'],0,4);
     }
     return $acc;
    }
// fine vecchia funzione DEPRECABILE


function createArrayCrediti($result,$pagame,$utsval) {
    // la variabile $result deve contenere tutti i movimenti tranne quelli di chiusura
    // scopo di questa funzione e' quella di creare l'array dei CREDITI vantati verso il cliente in base
    // alla condizione di pagamento passata tramite la seconda variabile.
    $parzi = 0.00;
    $progr = 0.00;
    $righiCrediti = array();
    $rigo = 0;
    $ctrlapertura = ""; //per prendere in considerazione solo il primo movimento d'apertura
    while ($movimenti = gaz_dbi_fetch_array($result)) {
      if ($movimenti["caucon"] != 'APE' or empty($ctrlapertura)) { //questo per eliminare tutti i movimenti di apertura successivi il primo
        if ($movimenti["darave"] == 'A') {
            if($progr >= 0) {
               $progr += $movimenti["import"];
            }
            if($progr < 0 and $progr >= -$movimenti["import"]) {
               $progr += $movimenti["import"];
               //questo per eliminare tutti gli array
               $righiCrediti = array();
               $rigo = 0;
            }
            if($progr < 0 and $progr < -$movimenti["import"]) {
               $parzi = $movimenti["import"];
               $progr += $movimenti["import"];
               foreach ($righiCrediti as $key => $value) {
                  if ($parzi >= $value['prelis']) {
                       array_shift($righiCrediti);
                       $rigo--;
                       $parzi -= $value['prelis'];
                  }
                  elseif ($parzi > 0) {
                       $righiCrediti[0]['prelis'] = $value['prelis'] - $parzi; //questo elimina il resto dell'elemento
                       $parzi = 0.00;
                  }
               }
            }
        } else {
            if($progr <= 0) {
               $giodoc = substr($movimenti['datdoc'],8,2);
               $mesdoc = substr($movimenti['datdoc'],5,2);
               $anndoc = substr($movimenti['datdoc'],0,4);
               $utsdoc = mktime(0,0,0,$mesdoc,$giodoc,$anndoc);
               $ratpag = CalcolaScadenze($movimenti['import'],$giodoc,$mesdoc,$anndoc,$pagame['tipdec'],$pagame['giodec'],$pagame['numrat'],$pagame['tiprat'],$pagame['mesesc'],$pagame['giosuc']);
               foreach ($ratpag['import'] as $key => $value) {
                    $utssca = mktime(0,0,0,$ratpag['mese'][$key],$ratpag['giorno'][$key],$ratpag['anno'][$key]);
                    if ($utssca <= $utsval) {
                       $righiCrediti[$rigo]['id_rig'] = $movimenti['id_rig'];
                       $righiCrediti[$rigo]['prelis'] = $value-$parzi;
                       switch($movimenti['operat']) {
                               case 1:
                               case 2:
                               $righiCrediti[$rigo]['descri'] = substr($movimenti['descri'],0,18)." N.".$movimenti['numdoc']." DEL ".$giodoc."-".$mesdoc."-".$anndoc;
                               break;
                               default:
                               $righiCrediti[$rigo]['descri'] = "";
                               break;
                       }
                       $rigo++;
                       $progr -= $value;
                    } else {
                       $progr -= $value;
                    }
               }
            }
            if($progr > 0 and $progr < $movimenti['import']) {
               $giodoc = substr($movimenti['datdoc'],8,2);
               $mesdoc = substr($movimenti['datdoc'],5,2);
               $anndoc = substr($movimenti['datdoc'],0,4);
               $utsdoc = mktime(0,0,0,$mesdoc,$giodoc,$anndoc);
               $ratpag = CalcolaScadenze($movimenti['import'],$giodoc,$mesdoc,$anndoc,$pagame['tipdec'],$pagame['giodec'],$pagame['numrat'],$pagame['tiprat'],$pagame['mesesc'],$pagame['giosuc']);
               $parzi = $progr;
               foreach ($ratpag['import'] as $key => $value) {
                    $utssca = mktime(0,0,0,$ratpag['mese'][$key],$ratpag['giorno'][$key],$ratpag['anno'][$key]);
                    if ($utssca <= $utsval)  {
                       if ($progr < $value) {
                          $righiCrediti[$rigo]['id_rig'] = $movimenti['id_rig'];
                          $righiCrediti[$rigo]['prelis'] = $value-$parzi;
                          switch($movimenti['operat']) {
                               case 1:
                               case 2:
                               $righiCrediti[$rigo]['descri'] = substr($movimenti['descri'],0,18)." N.".$movimenti['numdoc']." DEL ".$giodoc."-".$mesdoc."-".$anndoc;
                               break;
                               default:
                               $righiCrediti[$rigo]['descri'] = "";
                               break;
                          }
                          $rigo++;
                          $parzi = 0.00;
                          $progr -= $value;
                       } else {
                          $progr -= $value;
                          $parzi -= $value;
                       }
                    } else {
                       $parzi = 0.00;
                       $progr -= $value;
                    }
               }
            }
            if($progr > 0 and $progr >= $movimenti['import']) {
               $progr -= $movimenti["import"];
            }
        }
      }
      if ($movimenti["caucon"] == 'APE') {
         $ctrlapertura = $movimenti["caucon"] ;
      }
    } //fine while
    $righiCrediti['numrighi'] = $rigo;
    return $righiCrediti;
}

function createArrayDebiti($result,$pagame,$utsval) {
    // scopo di questa funzione e' quella di creare l'array dei DEBITI verso il fornitore in base
    // alla condizione di pagamento passata tramite la seconda variabile.
    $parzi = 0.00;
    $progr = 0.00;
    $righiDebiti = array();
    $rigo = 0;
    while ($movimenti = gaz_dbi_fetch_array($result)) {
        if ($movimenti["darave"] == 'D') {
            if($progr >= 0) {
               $progr += $movimenti["import"];
            }
            if($progr < 0 and $progr >= -$movimenti["import"]) {
               $progr += $movimenti["import"];
               //questo per eliminare tutti gli array
               $righiDebiti = array();
               $rigo = 0;
            }
            if($progr < 0 and $progr < -$movimenti["import"]) {
               $parzi = $movimenti["import"];
               $progr += $movimenti["import"];
               foreach ($righiDebiti as $key => $value) {
                  if ($parzi >= $value['prelis']) {
                       array_shift($righiDebiti);
                       $rigo--;
                       $parzi -= $value['prelis'];
                  }
                  elseif ($parzi > 0) {
                       $righiDebiti[0]['prelis'] = $value['prelis'] - $parzi; //questo elimina il resto dell'elemento
                       $parzi = 0.00;
                  }
               }
            }
        } else {
            if($progr <= 0) {
               $giodoc = substr($movimenti['datdoc'],8,2);
               $mesdoc = substr($movimenti['datdoc'],5,2);
               $anndoc = substr($movimenti['datdoc'],0,4);
               $utsdoc = mktime(0,0,0,$mesdoc,$giodoc,$anndoc);
               $ratpag = CalcolaScadenze($movimenti['import'],$giodoc,$mesdoc,$anndoc,$pagame['tipdec'],$pagame['giodec'],$pagame['numrat'],$pagame['tiprat'],$pagame['mesesc'],$pagame['giosuc']);
               foreach ($ratpag['import'] as $key => $value) {
                    $utssca = mktime(0,0,0,$ratpag['mese'][$key],$ratpag['giorno'][$key],$ratpag['anno'][$key]);
                    if ($utssca <= $utsval) {
                       $righiDebiti[$rigo]['prelis'] = $value-$parzi;
                       $righiDebiti[$rigo]['id_rig'] = 0;
                       switch($movimenti['caucon']) {
                               case "AFA":
                               $righiDebiti[$rigo]['descri'] = "FATTURA N.".$movimenti['numdoc']." DEL ".$giodoc."-".$mesdoc."-".$anndoc;
                               break;
                               case 'AFD':
                               $righiDebiti[$rigo]['descri'] = "NOTA DEBITO N.".$movimenti['numdoc']." DEL ".$giodoc."-".$mesdoc."-".$anndoc;
                               break;
                               case 'AFC':
                               $righiDebiti[$rigo]['descri'] = "NOTA CREDITO N.".$movimenti['numdoc']." DEL ".$giodoc."-".$mesdoc."-".$anndoc;
                               break;
                               default:
                               $righiDebiti[$rigo]['descri'] = "DOCUMENTO N.".$movimenti['numdoc']." DEL ".$giodoc."-".$mesdoc."-".$anndoc;
                               break;
                       }
                       $rigo++;
                       $progr -= $value;
                    } else {
                       $progr -= $value;
                    }
               }
            }
            if($progr > 0 and $progr < $movimenti['import']) {
               $giodoc = substr($movimenti['datdoc'],8,2);
               $mesdoc = substr($movimenti['datdoc'],5,2);
               $anndoc = substr($movimenti['datdoc'],0,4);
               $utsdoc = mktime(0,0,0,$mesdoc,$giodoc,$anndoc);
               $ratpag = CalcolaScadenze($movimenti['import'],$giodoc,$mesdoc,$anndoc,$pagame['tipdec'],$pagame['giodec'],$pagame['numrat'],$pagame['tiprat'],$pagame['mesesc'],$pagame['giosuc']);
               $parzi = $progr;
               foreach ($ratpag['import'] as $key => $value) {
                    $utssca = mktime(0,0,0,$ratpag['mese'][$key],$ratpag['giorno'][$key],$ratpag['anno'][$key]);
                    if ($utssca <= $utsval)  {
                       if ($progr < $value) {
                          $righiDebiti[$rigo]['prelis'] = $value-$parzi;
                          $righiDebiti[$rigo]['id_rig'] = 0;
                          switch($movimenti['caucon']) {
                               case "AFA":
                               $righiDebiti[$rigo]['descri'] = "FATTURA N.".$movimenti['numdoc']." DEL ".$giodoc."-".$mesdoc."-".$anndoc;
                               break;
                               case 'AFD':
                               $righiDebiti[$rigo]['descri'] = "NOTA DEBITO N.".$movimenti['numdoc']." DEL ".$giodoc."-".$mesdoc."-".$anndoc;
                               break;
                               case 'AFC':
                               $righiDebiti[$rigo]['descri'] = "NOTA CREDITO N.".$movimenti['numdoc']." DEL ".$giodoc."-".$mesdoc."-".$anndoc;
                               break;
                               default:
                               $righiDebiti[$rigo]['descri'] = "DOCUMENTO N.".$movimenti['numdoc']." DEL ".$giodoc."-".$mesdoc."-".$anndoc;
                               break;
                          }
                          $rigo++;
                          $parzi = 0.00;
                          $progr -= $value;
                       } else {
                          $progr -= $value;
                          $parzi -= $value;
                       }
                    } else {
                       $parzi = 0.00;
                       $progr -= $value;
                    }
               }
            }
            if($progr > 0 and $progr >= $movimenti['import']) {
               $progr -= $movimenti["import"];
            }
        }
    } //fine while
    $righiDebiti['numrighi'] = $rigo;
    return $righiDebiti;
}
?>
Return current item: GAzie - Gestione Aziendale