Erro ao gerar contas

20/12/2005

0

Blz galera...estou com problema estranho tinha uma função funcionava perfeitinho...aí coliquei esta função ( só pode ser algo a ver com ela pois antes funcionava...) e depois parou de funcionar dá um erro que a BD_CONTAS_TPA não está em mode de edição...esta tabela em questão serve de suporte para uma outra, serve para gerar códigos de indentificação para tabelas de contas a pagar... o código adiciondo foi este ...

    with BD_ORCA_ITENS do
    begin
    First;
    Try
    while not BD_ORCA_ITENS.eof do
      begin
      BD_ESTOQUE.Close;
      BD_ESTOQUE.SQL.Clear;
      BD_ESTOQUE.SQL.Add(´select * from  ESTOQUE where GS_EST_CODIGO=´+inttostr(BD_ORCA_ITENSGS_OOEI_CODPROD.Value));
      BD_ESTOQUE.Open;
      BD_ESTOQUE.Edit;
      if not BD_ORCA_ITENSGS_OOEI_CODPROD.IsNull then
      begin
      BD_ESTOQUEGS_EST_QNT.Value := BD_ESTOQUEGS_EST_QNT.Value - BD_ORCA_ITENSGS_OOEI_QNT.Value;
      BD_ESTOQUE.Post;
      BD_ORCA_ITENS.next;
    end
    else
    BD_ORCA_ITENS.next;
    end;
    DM1.IBTransaction1.CommitRetaining;
    except
    showmessage(´Problema com o banco de dados.´);
    DM1.IBTransaction1.rollback;
    end;
    end;


e o código completo é este...



procedure T_FORM_OS_BX.Geraparcelas;
var
  v_count,v_parc: integer;
  v_date:Tdatetime;
  v_valor:REAL;
begin
  BD_CONTAS_TPA.Post;
  v_date:=strtodate(eddata.text)+ strtofloat(ComboBox2.text);
  v_count:=strtoint(edparcela.text);
  v_parc:=1;
  if edentrada.Text <> ´0,00´ then ARQUIV_MORTO_FINAN;
  while v_count>0 do
    begin
    BD_CONT_REC.insert;
    BD_CONT_REC.FieldByName(´GS_COR_N_PARCELAS´).asinteger:=(v_parc);
    V_VALOR:=((StrtoFloat(Label17.caption)))/strtoint((edparcela.text));
    BD_CONT_REC.fieldbyname(´GS_COR_VALOR_PARCELA´).value:=floattostrf(v_valor,ffFixed,10,2);
    BD_CONT_REC.FieldByName(´GS_COR_DATA_VENC´).asdatetime:=v_date;
    BD_CONT_RECGS_COR_END.Value := _FORM_OS_NAV.BD_OFC_ELEGS_OOE_END.Value;
    BD_CONT_RECGS_COR_NOME.Value := _FORM_OS_NAV.BD_OFC_ELEGS_OOE_NOME.Value;
    BD_CONT_RECGS_COR_COMP.Value := _FORM_OS_NAV.BD_OFC_ELEGS_OOE_COMP.Value;
    BD_CONT_RECGS_COR_BAIRRO.Value := _FORM_OS_NAV.BD_OFC_ELEGS_OOE_BAIRRO.Value;
    BD_CONT_RECGS_COR_CIDADE.Value := _FORM_OS_NAV.BD_OFC_ELEGS_OOE_CIDADE.Value;
    BD_CONT_RECGS_COR_CEP.Value := _FORM_OS_NAV.BD_OFC_ELEGS_OOE_CEP.Value;
    BD_CONT_RECGS_COR_CODCLI.Value := _FORM_OS_NAV.BD_OFC_ELEGS_OOE_CODACES.value;
    BD_CONT_RECGS_COR_TEL_01.Value := _FORM_OS_NAV.BD_OFC_ELEGS_OOE_TEL_01.Value;
    BD_CONT_RECGS_COR_TEL_02.Value := _FORM_OS_NAV.BD_OFC_ELEGS_OOE_TEL_02.Value;
    BD_CONT_RECGS_COR_TEL_03.Value := _FORM_OS_NAV.BD_OFC_ELEGS_OOE_TEL_03.Value;
    BD_CONT_RECGS_COR_TEL_04.Value := _FORM_OS_NAV.BD_OFC_ELEGS_OOE_TEL_04.Value;
    BD_CONT_RECGS_COR_UF.Value := _FORM_OS_NAV.BD_OFC_ELEGS_OOE_UF.Value;
    BD_CONT_RECGS_COR_CODPROD.Value := Label27.Caption;
    BD_CONT_RECGS_COR_VALOR_TOTAL.Value := edvalor.Text;
    BD_CONT_RECGS_COR_VALOR_ENT.Value := edentrada.Text;
    BD_CONT_RECGS_COR_DESCRICAO.Value := ´Parcelamento da OS - ´+(Label27.Caption);
    BD_CONT_RECGS_COR_DATA_CAD.Value := StrToDate(FormatDateTime(´dd/mm/yyyy´,Date));
    BD_CONT_RECGS_COR_CODACES.Value := _FORM_OS_NAV.BD_OFC_ELEGS_OOE_CODACES.value;
    BD_CONT_RECGS_COR_CODACESPAR.Value := BD_CONTAS_TPAGS_TPA_CODIGO.Value;
    BD_CONT_REC.post;
    v_count:=v_count-1;
    v_parc:=v_parc+1;
    v_date:=v_date+30;
    BD_CONT_REC.next;
  end;
    BD_AM_OSOE.Insert;
    BD_AM_OSOEGS_AMOOEI_CON_SAIDA.Value := ´Consertado´;
    BD_AM_OSOEGS_AMOOEI_USU_LOG.Value:= _FORM_PRINCIPAL.StatusBar.Panels[2].text;
    BD_AM_OSOEGS_AMOOEI_END.Value :=  _FORM_OS_NAV.BD_OFC_ELEGS_OOE_END.Value;
    BD_AM_OSOEGS_AMOOEI_COMP.Value :=  _FORM_OS_NAV.BD_OFC_ELEGS_OOE_COMP.Value;
    BD_AM_OSOEGS_AMOOEI_BAIRRO.Value :=  _FORM_OS_NAV.BD_OFC_ELEGS_OOE_BAIRRO.Value;
    BD_AM_OSOEGS_AMOOEI_CIDADE.Value :=  _FORM_OS_NAV.BD_OFC_ELEGS_OOE_CIDADE.Value;
    BD_AM_OSOEGS_AMOOEI_CEP.Value :=  _FORM_OS_NAV.BD_OFC_ELEGS_OOE_CEP.Value;
    BD_AM_OSOEGS_AMOOEI_TEL_01.Value :=  _FORM_OS_NAV.BD_OFC_ELEGS_OOE_TEL_01.Value;
    BD_AM_OSOEGS_AMOOEI_TEL_02.Value :=  _FORM_OS_NAV.BD_OFC_ELEGS_OOE_TEL_02.Value;
    BD_AM_OSOEGS_AMOOEI_TEL_03.Value :=  _FORM_OS_NAV.BD_OFC_ELEGS_OOE_TEL_03.Value;
    BD_AM_OSOEGS_AMOOEI_TEL_04.Value :=  _FORM_OS_NAV.BD_OFC_ELEGS_OOE_TEL_04.Value;
    BD_AM_OSOEGS_AMOOEI_ACESSORIOS.Value :=  _FORM_OS_NAV.BD_OFC_ELEGS_OOE_ACESSORIOS.Value;
    BD_AM_OSOEGS_AMOOEI_DEF_ALEGADO.Value :=  _FORM_OS_NAV.BD_OFC_ELEGS_OOE_DEF_ALEGADO.Value;
    BD_AM_OSOEGS_AMOOEI_TIPCONSERTO.Value :=  _FORM_OS_NAV.BD_OFC_ELEGS_OOE_TIPCONSERTO.Value;
    BD_AM_OSOEGS_AMOOEI_APROVSN.Value :=  _FORM_OS_NAV.BD_OFC_ELEGS_OOE_APROVSN.Value;
    BD_AM_OSOEGS_AMOOEI_DATA_AGE.Value :=  Date;
    BD_AM_OSOEGS_AMOOEI_HORA_ENT.Value :=  _FORM_OS_NAV.BD_OFC_ELEGS_OOE_TIPCONSERTO.Value;
    BD_AM_OSOEGS_AMOOEI_UF.Value :=  _FORM_OS_NAV.BD_OFC_ELEGS_OOE_UF.Value;
    BD_AM_OSOEGS_AMOOEI_EMAIL.Value :=  _FORM_OS_NAV.BD_OFC_ELEGS_OOE_EMAIL.Value;
    BD_AM_OSOEGS_AMOOEI_NOME.Value := _FORM_OS_NAV.BD_OFC_ELEGS_OOE_NOME.Value;
    BD_AM_OSOEGS_AMOOEI_CODACES.Value := _FORM_OS_NAV.BD_OFC_ELEGS_OOE_CODACES.Value;
    BD_AM_OSOEGS_AMOOEI_DATA_ENT.Value := _FORM_OS_NAV.BD_OFC_ELEGS_OOE_DATA_ENT.Value;
    BD_AM_OSOEGS_AMOOEI_DATA_ORC.Value := _FORM_OS_NAV.BD_OFC_ELEGS_OOE_DATA_ORC.Value;
    BD_AM_OSOEGS_AMOOEI_VALOR_TOT.Value := Edit3.Text;
    BD_AM_OSOEGS_AMOOEI_APDESCR.Value := _FORM_OS_NAV.BD_OFC_ELEGS_OOE_APDESCR.Value;
    BD_AM_OSOEGS_AMOOEI_DEF_ALEGADO.Value :=  _FORM_OS_NAV.BD_OFC_ELEGS_OOE_DEF_ALEGADO.Value;
    BD_AM_OSOEGS_AMOOEI_MARCA.Value := _FORM_OS_NAV.BD_OFC_ELEGS_OOE_MARCA.Value;
    BD_AM_OSOEGS_AMOOEI_MODELO.Value := _FORM_OS_NAV.BD_OFC_ELEGS_OOE_MODELO.Value;
    BD_AM_OSOEGS_AMOOEI_NSERIE.Value := _FORM_OS_NAV.BD_OFC_ELEGS_OOE_NSERIE.Value;
    BD_AM_OSOEGS_AMOOEI_DATA_ORC.Value := _FORM_OS_NAV.BD_OFC_ELEGS_OOE_DATA_ENT.Value;
    BD_AM_OSOEGS_AMOOEI_DATA_SAI.Value := _FORM_OS_NAV.BD_OFC_ELEGS_OOE_DATA_SAI.Value;
    BD_AM_OSOEGS_AMOOEI_CODIGO_OS.Value := _FORM_OS_NAV.BD_OFC_ELEGS_OOE_CODIGO.Value;
    BD_AM_OSOEGS_AMOOEI_TEC_RESP.Value := _FORM_OS_NAV.BD_OFC_ELEGS_OOE_TEC_RESP.Value;
    BD_AM_OSOE.Post;
    with BD_ORCA_ITENS do
    begin
    First;
    Try
    while not BD_ORCA_ITENS.eof do
      begin
      BD_ESTOQUE.Close;
      BD_ESTOQUE.SQL.Clear;
      BD_ESTOQUE.SQL.Add(´select * from  ESTOQUE where GS_EST_CODIGO=´+inttostr(BD_ORCA_ITENSGS_OOEI_CODPROD.Value));
      BD_ESTOQUE.Open;
      BD_ESTOQUE.Edit;
      if not BD_ORCA_ITENSGS_OOEI_CODPROD.IsNull then
      begin
      BD_ESTOQUEGS_EST_QNT.Value := BD_ESTOQUEGS_EST_QNT.Value - BD_ORCA_ITENSGS_OOEI_QNT.Value;
      BD_ESTOQUE.Post;
      BD_ORCA_ITENS.next;
    end
    else
    BD_ORCA_ITENS.next;
    end;
    DM1.IBTransaction1.CommitRetaining;
    except
    showmessage(´Problema com o banco de dados.´);
    DM1.IBTransaction1.rollback;
    end;
    end;
 With BD_CONT_REC do
  begin
    Close;
    SQL.Clear;
    SQL.Add(´SELECT * FROM CONTAS_RECEBER´);
    SQL.Add(´WHERE UPPER(GS_COR_CODACESPAR) LIKE:GS_COR_CODACESPAR´);
    BD_CONT_REC.Params[0].AsString := UpperCase(inttostr(BD_CONTAS_TPAGS_TPA_CODIGO.Value)) + ´¬´;
    BD_CONT_REC.Open;
  end;
    if MessageDlg(´Deseja imprimir promissórias ?´,
    mtConfirmation, [mbYes, mbNo], 0) = mrYes then
    QuickRep3.Print;
    if MessageDlg(´Imprimir documento de saida ?´,
    mtConfirmation, [mbYes, mbNo], 0) = mrYes then
    QuickRep4.Print;
    BD_ORCA_ITENS.First;
    while not BD_ORCA_ITENS.Eof do
    BD_ORCA_ITENS.Delete;
    _FORM_OS_NAV.BD_OFC_ELE.Delete;
  Close;
end;



Vlw quem poder me ajudar vlw msm...t+


Gigatel

Gigatel

Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar