/**
  * Inclui ISSQN Retido utilizado pelo nfse
  *
  * @param array $vt
  * @param null  $q02_inscr
  * @param null  $iNumCgm
  * @return bool
  */
 function incluir_issvar_dms($vt = array(), $q02_inscr = null, $iNumCgm = null)
 {
     $errocompl = false;
     if ($this->q05_histor == '' && $vt != '') {
         reset($vt);
         $ta = sizeof($vt);
         $vir = '';
         $this->q05_histor = 'REFERENTE NOTAS FISCAIS No.:';
         for ($i = 0; $i < $ta; $i++) {
             $chave = key($vt);
             if (substr($chave, 0, 6) == 'linha_') {
                 $sqlerro = false;
                 $matri = explode('#', $vt[$chave]);
                 $this->q05_histor .= $vir . $matri[0];
                 $vir = ',';
             }
             $proximo = next($vt);
         }
     }
     $this->incluir(null);
     if ($this->erro_status == '0') {
         $this->erro_msg;
         $errocompl = true;
     }
     $codigo = $this->q05_codigo;
     if ($errocompl == false and $vt != '') {
         $clissvarnotas = new cl_issvarnotas();
         reset($vt);
         $ta = sizeof($vt);
         for ($i = 0; $i < $ta; $i++) {
             $chave = key($vt);
             if (substr($chave, 0, 6) == 'linha_') {
                 $matri = explode('#', $vt[$chave]);
                 $sql = "select max(q06_seq) +1 as seq from issvarnotas where issvarnotas.q06_codigo = {$codigo}";
                 $result55 = db_query($sql);
                 $seq = pg_result($result55, 0, 'seq');
                 $q06_seq = $seq == '' ? '1' : $seq;
                 $clissvarnotas->q06_codigo = $codigo;
                 $clissvarnotas->q06_seq = $q06_seq;
                 $clissvarnotas->q06_nota = $matri[0];
                 $clissvarnotas->q06_valor = $matri[1];
                 $clissvarnotas->incluir($codigo, $q06_seq);
                 if ($clissvarnotas->erro_status == '0') {
                     $errocompl = true;
                     $this->erro_msg = $clissvarnotas->erro_msg;
                 }
             }
             $proximo = next($vt);
         }
     }
     if ($errocompl == false && $q02_inscr != '') {
         $clarreinscr = new cl_arreinscr();
         $clarreinscr->k00_numpre = $this->q05_numpre;
         $clarreinscr->k00_inscr = $q02_inscr;
         $clarreinscr->k00_perc = 100;
         // exclui se ja existir, senão da duplicate key
         $clarreinscr->excluir($this->q05_numpre, $q02_inscr);
         $clarreinscr->k00_perc = 100;
         $clarreinscr->incluir($this->q05_numpre, $q02_inscr);
         if ($clarreinscr->erro_status == '0') {
             $errocompl = true;
             $this->erro_msg = $clarreinscr->erro_msg;
         } else {
             $resultcgm = db_query("select q02_numcgm as z01_numcgm from issbase where q02_inscr = {$q02_inscr}");
             $z01_numcgm = pg_result($resultcgm, 0, "z01_numcgm");
         }
     } else {
         $z01_numcgm = $vt['z01_numcgm'];
     }
     if ($errocompl == false) {
         $rsConfPlan = db_query('select * from db_confplan');
         if (pg_num_rows($rsConfPlan) > 0) {
             $w10_dia = pg_result($rsConfPlan, 0, "w10_dia");
             $w10_tipo = pg_result($rsConfPlan, 0, 'w10_tipo');
             $w10_hist = pg_result($rsConfPlan, 0, 'w10_hist');
             $w10_receit = pg_result($rsConfPlan, 0, 'w10_receit');
         } else {
             $errocompl = true;
             $this->erro_msg = 'Tabela db_confplan vazia!';
         }
         $qmes = $this->q05_mes;
         $qano = $this->q05_ano;
         $qmes += 1;
         if ($qmes > 12) {
             $qmes = 1;
             $qano += 1;
         }
         $qmes = str_pad($qmes, 2, '0', STR_PAD_LEFT);
         $venc_arrecad = "{$qano}-{$qmes}-{$w10_dia}";
         if ($iNumCgm != null) {
             $iCgm = $iNumCgm;
         } else {
             $iCgm = $z01_numcgm;
         }
         $clarrecad = new cl_arrecad();
         $clarrecad->k00_numcgm = $iCgm;
         $clarrecad->k00_dtvenc = $venc_arrecad;
         $clarrecad->k00_dtoper = $venc_arrecad;
         $clarrecad->k00_valor = $this->q05_valor;
         $clarrecad->k00_numpre = $this->q05_numpre;
         $clarrecad->k00_numtot = 1;
         $clarrecad->k00_numpar = $this->q05_mes;
         $clarrecad->k00_numdig = '0';
         $clarrecad->k00_tipojm = '0';
         $clarrecad->k00_tipo = $w10_tipo;
         $clarrecad->k00_hist = $w10_hist;
         $clarrecad->k00_receit = $w10_receit;
         $clarrecad->incluir();
         if ($clarrecad->erro_status == '0') {
             $errocompl = true;
             $this->erro_msg = "Arrecad - {$clarrecad->erro_msg}";
         }
     }
     if ($errocompl == false) {
         $this->erro_msg = 'Inclusão efetuada com sucesso!';
         $this->q05_valor = '';
         $this->q05_bruto = '';
         unset($this->q05_histor);
         unset($q06_nota);
         unset($q06_valor);
         return true;
     } else {
         $this->erro_status = '0';
         return false;
     }
 }