SE_PNFE;Dados para NFE;sys_tbbrow; 5;0;18;79;x;;
:SKEL
VARIAVEL w_colsep = chr(179)
VARIAVEL w_headsep = chr(196)
VARIAVEL zbTrocaNcm=#TEXTO_FONTE
   PRIVATE zNcmOrig:=0, m_pCodClaFis:=0, zMudados:=0, oProgressBar, zRegOrig
   if .not. QuickDialog("se_pnfe_getncm", "Troca de NCM", { ;
      {"Ncm Original..:", "@zNcmOrig", @zNcmOrig, "99999999", "", ""}, ;
      {"Mudar para NCM:", "@m_pCodClaFis", @m_pCodClaFis, "99999999", "", "Chk_LastKey(5).Or.PSQ_BROW;ci_ncm;pcincm;N;S;0;0;;;strZero(m_pCodClaFis,8);Val(ncm);"}}) .or. ;
      Alert( "Confirmar Mudar NCM "+Str(zNcmOrig,8)+" para "+Str(m_pCodClaFis,8)+" ?",{"1.Sim","2.Nao"},"B/W") <> 1
      Return
   endif

   zRegOrig := Recno()
   oProgressBar:= myHProgressBar():Create( "Aguarde... Verificando NCMs...")
   DbGoTop()
   Do While .not. Eof()
      oProgressBar:Step()
      se pCodClaFis=zNcmOrig entao ( RegLock(), _field->pCodClaFis:=m_pCodClaFis , ++zMudados)
      Skip
   EndDo
   oProgressBar:Close()
   se zMudados>0 entao ( DbCommit(), DbUnlock() )        // Se houve mudancas, Garanta Gravacao
   DbGoto( zRegOrig )   
   Alert("Foram Trocadas "+lTrim(Str(zMudados))+" NCMs de "+Str(zNcmOrig,8)+" para "+Str(m_pCodClaFis,8) )
#FIM_TEXTO_FONTE
VARIAVEL zb2TrocaNcm=#TEXTO_FONTE
   PRIVATE zNcmOrig:=0, m_pCodClaFis:=0, zMudados:=0, oProgressBar, zRegOrig, oQbe
   oQbe:=oQbe():New('se_prod')

   oQbe:AddFiltro("2;3;Descricoes.....:", {||pDesc}, 'Todas ')
   oQbe:AddFiltro("3;3;Referencias....:", {||pRef},  'Todas ')
   oQbe:AddFiltro("4;3;Fabricantes....:", {||pPrincforn} ,, 'sccpfab;qbe_psccpfab',  {'Todos ','Alguns '} ,,, 'm_QbePfFor')
       oQbe:AddFiltro( "4;30;", {||pPrincforn} ,,,{'psq_brow','psq_brow();sccpfab;psccpfab;N;N;',0,'999999',"empty(m_QbePfForGet)"} ,,, 'm_PfFor')
   oQbe:AddFiltro("5;3;SubDivisoes....:", {||pDivisao}   ,, 'se_subd;qbe_psesubd',   {'Todas','Algumas'})
   oQbe:AddFiltro("6;3;Grupos de Preco:", {||pGPreco}    ,, 'se_gpre;qbe_psegpre',   {'Todos','Alguns'})
   oQbe:AddLine( {"8;3;Se nao Existir, Colocar NCM:", "@m_pCodClaFis", @m_pCodClaFis, "99999999", "", "Chk_LastKey(5).Or.PSQ_BROW;ci_ncm;pcincm;N;S;0;0;;;strZero(m_pCodClaFis,8);Val(ncm);"} )
   If .not. ( oQbe:QuickDialog("Qbe_TrocaNCM", "62;10;Filtros para Selecao de Produtos", , /*bDestroy*/, /*bDlgInit*/) .and. Alert( "Confirmar Mudar NCMs para "+Str(m_pCodClaFis,8)+" ?",{"1.Sim","2.Nao"},"B/W")=1 )
      Return
   EndIf
   
   zRegOrig := Recno()
   oProgressBar:= myHProgressBar():Create( "Aguarde... Verificando NCMs...")
   DbGoTop()
   Do While .not. Eof()
      oProgressBar:Step()
      se pCodClaFis=0 .and. oQbe:Filtro_Ok() entao ( RegLock(), _field->pCodClaFis:=m_pCodClaFis , ++zMudados)
      Skip
   EndDo
   oProgressBar:Close()
   se zMudados>0 entao ( DbCommit(), DbUnlock() )        // Se houve mudancas, Garanta Gravacao
   DbGoto( zRegOrig )   
   Alert("Foram Trocadas "+lTrim(Str(zMudados))+" NCMs para "+Str(m_pCodClaFis,8) )
#FIM_TEXTO_FONTE
:TBMT
 13;se_doget(D_ob, pCod);Enter-Edita ;
  7;tb_del(D_ob);DEL-DELeta ;
 65;DbSeek_Add_Se_Pnfe( pCod, .f., .t.);A-Altera ;
 80;tb_pesq(D_OB);P-Pesquisa ;
 79;tb_index(D_OB);O-Ordena ;
 73;lst_alias(D_OB);I-Imprime ;
 70;tb_filter(d_ob);F-Filtra ;
 69;tb_filter(d_ob,"Exp");E-Filtra_Expressao;
 61;doget(D_ob,,.t.);=-Repete_Edicao ;
 85;SePnfeUpdate();U-Atualiza_CSTs ;
 84;eVal(zbTrocaNcm);T-Troca_NCM ;
 90;eVal(zb2TrocaNcm);Z-Troca_NCM_Generico ;
:TBFI
Prod;pCod;N;999999;6;N;
Descricao;pdesc;P;@s28;28;S;
NCM;pcodclafis;N;99999999;8;S;
CF;pcategoria;C;!!;2;S;
Tp;ptipoitem;C;!!;2;S;
Finalidade;Efd_TipoItem();P;@S13;13;N;
CSTicm;nf_csticm;C;999;6;S;
CodNat;cod_Nat;C;XX;6;S;
CSTipi;nf_cstipi;C;999;6;S;
CSTpis;nf_cstpis;C;999;6;S;
CSTcof;nf_cstcof;C;999;6;S;
EntPIS;nf_cstEpis;C;999;6;S;
EntCOF;nf_cstEcof;C;999;6;S;
SaiIPI;nf_cstipi;C;999;6;S;
EntIPI;nf_cstEipi;C;999;6;S;
TxPis;nf_txPis;N;999.99;6;S;
TxCof;nf_txCof;N;999.99;6;S;
%ISS;pIss;N;999.99;6;S;
Orig;nf_orig;C;9999;4;S;
Modalid;nf_modalid;C;9;7;S;
l;pnegpos;C;!!;2;N;
ClaPisCof;nf_lista;C;9;9;S;
CFOp;pcfop;C;9X999;5;S;
