//pag;l1;c1;l2;c2;desc;borda;preget;posget;preinc;posinc
 1; 4; 5;20;75;Tesouraria: Adiantamento de Titulo;;;;;
:SKEL
VARIAVEL z_divcompras=" "
VARIAVEL m_acesso = reccount()+1
VARIAVEL m_sx_ACESSO := (DbGoBottom(),if(sx_acesso>0,sx_acesso+1,RecCount()))
VARIAVEL m_cp_tip_lqd = 1
VARIAVEL zFgEdit = .f.
VARIAVEL m_tipo = "Retirada"
VARIAVEL m_grupo = 2
VARIAVEL m_fg_contab = " "
VARIAVEL m_data = s_datual
VARIAVEL m_sx_Conta=GetCtaTesou("ES")
VARIAVEL m_cp_valor := 0
VARIAVEL m_cp_val_lqd := 0
VARIAVEL zbValAdiant := {||sccpped->(), RefreshGetList(), .f.}

VARIAVEL zbSetGet0={||m_cp_num_ped:=cp_num_ped,m_cp_divisao:=cp_divisao,m_cp_subdiv:=cp_subdiv,m_cp_situaca:=cp_situaca,m_cp_local:=cp_local,eVal(zbSetGet1)}
VARIAVEL zbSetGet1={||m_Valor:=if(cp_valor-cp_val_lqd>0,cp_valor-cp_val_lqd,0), m_cp_valor:=cp_valor, m_cp_val_lqd:=cp_val_lqd}
VARIAVEL zbSetGet={||sccpped->(m_desc:=pad('Adiant Tit '+Alltrim(sccpfor->CP_FANTASI)+' Vencto '+Dtoc(cp_dt_venc),len(m_desc)),eVal(zbSetGet0)),RefreshGetList(),.f.}
VARIAVEL zbSubD={||cSubD:=StrZero(m_CP_DIVISAO,3),m_CP_SUBDIV:=cSubD+SubStr(m_CP_SUBDIV,4),RefreshGetList(),cp_subd->(DbSeek(cSubD))}

VARIAVEL zQtdParcelas=0
VARIAVEL zIntervaloParcelas:=30
VARIAVEL zDtPrimeira:=s_dAtual+30
VARIAVEL zValorParcelas:=0
// Como identifiquei a variavel, o bloco seguinte apenas criara um codeblock
VARIAVEL zbGetParcelas=#TEXTO_FONTE
   Private zaLinesTela:={}
   // Se sx_conta->CP_COD_FOR>0 eh porque a conta pagadora eh um cartao
   // Soh deve exibir tela de parcelamento do debito em cartao, se a conta destino nao for o proprio bnds, por exemplo
   if sx_conta->CP_COD_FOR>0 .and. m_CP_COD_FOR<>sx_conta->CP_COD_FOR
      aAdd( zaLinesTela, {"2;3;Quantidade de Parcelas...:", "@zQtdParcelas",   @zQtdParcelas,  "999", "zQtdParcelas:=if(zQtdParcelas=0,1,zQtdParcelas),RefreshGetList()", "zQtdParcelas>0" } )
      aAdd( zaLinesTela, {"3;3;Valor das Parcelas ......:", "@zValorParcelas", @zValorParcelas, "999999999.99", "zQtdParcelas>0.and.(zValorParcelas:=m_valor/zQtdParcelas,RefreshGetList())", "" } )
      aAdd( zaLinesTela, {"4;3;Intervalor Entre Parcelas:", "@zIntervaloParcelas",  @zIntervaloParcelas,  "99", "zQtdParcelas>0", "" } )
      aAdd( zaLinesTela, {"5;3;Vencimento da Primeira...:", "@zDtPrimeira",    @zDtPrimeira,  "99.99.9999", "zQtdParcelas>0", "" } )
      Return QuickDialog("SxGet_PgtoCartao","45;6;Pagamento com Cartao", zaLinesTela)
   else
      Return .t.
   endif
#FIM_TEXTO_FONTE

VARIAVEL #TEXTO_FONTE
   if(select("SX_CONTA")=0, Abra_arq("SX_CONTA"), "")
   if(select("SCCPFOR")=0,  Abra_arq("SCCPFOR"),  "")
   if(select("SCCPPED")=0,  Abra_arq("SCCPPED",.f.,"0",r_siga,"SCCPPED","sccppdff,str(cp_cod_for,5)+cp_duplic"), "")
   if(select("CP_SUBD")=0,  Abra_arq("CP_SUBD"),  "")
   if(select("CP_DIVIS")=0, Abra_arq("CP_DIVIS"), "")
   DbSelectArea("SX_CAIXA")
#FIM_TEXTO_FONTE

comando depois Sx_caixa('GRAVE_PAGAMENTO_PORCONTA')

COMANDO SAIDA #TEXTO_FONTE
   Sccpped->(DbCloseArea())
   sx_conta->(DbCloseArea())
   cp_subd->(DbCloseArea())
   cp_divis->(DbCloseArea())
   sccpfor->(DbCloseArea())
   DbSelectArea("SX_CAIXA")
#FIM_TEXTO_FONTE

:TFIE
//pag;l;c;desc;tipo;tam;campo;pict;when;valid;dbname;objcons;chave?;seek?;le;ce;cexib;pictexib
 1; 2;50;Acesso:;N; 6;sx_ACESSO;999999;.f.;;
 1; 3;50;Tipo .:;C; 8;TIPO;@s8;.f.;;
 1; 4;50;Data .:;D; 8;DATA;;
 
 1; 2; 2;Conta Tesour:;N; 3;SX_CONTA;999;;PSQ_BROW;sx_conta;psxconta;N;S;2;25;ct_titulo;@s18;

 1; 3; 2;Fornecedor..:;N; 5;CP_COD_FOR;99999;;Chk_LastKey(5).or.psq_brow;SCCPFOR;PSCCPFOR;N;N;3;25;CP_NOME;@S25;
 1; 4; 2;Duplicata...:;C;10;CP_DUPLIC;@s10;;Chk_LastKey(5).or.(psq_brow().and.Day(Sccpped->cp_dt_lqd)=0);SCCPPED;PSCCPPD1;N;S;;;;;str(m_cp_cod_for,5)+m_cp_duplic;cp_duplic;
 1; 5; 2;Cod.Pedido..:;N;11;cp_num_ped;@s10;eval(zbSetGet);;
 1; 6; 2;Div. Despesa:;N; 3;CP_DIVISAO;999;;Chk_LastKey(5).or.psq_brow;cp_divis;pcpdivif;N;S;7;25;desc;@s18;
 1; 7; 2;Subdiv.Desp.:;C; 5;CP_SUBDIV;@S5;eval(zbSubD);Chk_LastKey(5).or.!cp_subd->(DbSeek(StrZero(m_CP_DIVISAO,3))).or.Psq_brow;Cp_Subd;PcpSubdf;N;S;8;25;SdDesc;@S18;

 1; 9; 2;Valor Titulo:;P;11;m_cp_valor;99999999.99;.f.;;
 1;10; 2;Ja Adiantado:;P;11;m_cp_val_lqd;99999999.99;.f.;;

 1; 9;32;Gr.Contabil:;N; 1;GRUPO;9;;Chk_LastKey(5).or.m_grupo=1.or.m_grupo=2.or.(Alert("Informe 1 ou 2 no Grupo Contabil"),.f.);;;

 1;13; 2;Val Adiantando Agora:;N;11;VALOR;99999999.99;;eVal(zbGetParcelas);;
 1;14; 2;Obs. Complementar...:;C;40;DESC;@S40;;