//---------------------------------------------------------------------------
void __fastcall TBolBradesco::SetMesAno(unsigned long MesAno)
{
    Periodo = DataStr(MesAno);
    MesBoleto = Periodo.SubString(1,2);
    AnoBoleto = Periodo.SubString(6,1);
    MesAnoBoleto = MesBoleto+AnoBoleto;
};
Exemplo n.º 2
0
//---------------------------------------------------------------------------
void __fastcall TCPServEx1::VerificaServicoFaturamento(int MesFaturamento)
{
  PHDataSource*  DSFat = new PHDataSource( NULL );
  try
   {
    DSFat->Name = "DSFat";
    DSFat->Tabela = DMFat1->TBFat;
    DSFat->MesNomeArq = RetornaData(DataStr(MesFaturamento), RDMES);
    DSFat->AnoNomeArq = RetornaData(DataStr(MesFaturamento), RDANO);
    DSFat->Open( true );
    DSFat->First();
    PHDataSource*  DSDetFat = new PHDataSource( NULL );
    try
     {
      DSDetFat->Name = "DSDetFat";
      DSDetFat->Tabela = DMFat1->TBDetFat;
      DSDetFat->MesNomeArq = DSFat->MesNomeArq;
      DSDetFat->AnoNomeArq = DSFat->AnoNomeArq;
      DSDetFat->Open( true );
      DSDetFat->First();
      for(int i=0; i<2; i++)
       if(DSFat->BuscaKeyBD( "ClienteTipoFat", PHDS1->GT( SERVEX_CLIENTE )+ ";0", true, true ) )
        {
          if(DSDetFat->BuscaKeyBD( "LancamentoServicoComplemento", DSFat->GT(FAT_LANCAMENTO)+";"+PHDS1->GT(SERVEX_SERVICO) + ";" + PHDS1->GT(SERVEX_COMPLEMENTO), true,true ))
           throw Exception( "Movimento em uso no 'Faturamento' do período '" +
                       IntToStr(DSFat->MesNomeArq)+"/"+IntToStr(DSFat->AnoNomeArq)+"'. Não pode ser editado." );
        }
     }
    __finally
     {
      DSDetFat->Close();
      delete DSDetFat;
     }
   }

  __finally
   {
    DSFat->Close();
    delete DSFat;
   }
}
Exemplo n.º 3
0
void __fastcall TRLCnsCDet1::PHReport1NeedData(PHReport *Sender,
      bool &MoreData)
{
  AnsiString Meses[13] = {"","Janeiro","Fevereiro","Março","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"};
  int Mes = RetornaData(DataStr(MesAtual),RDMES);
  int Ano = RetornaData(DataStr(MesAtual),RDANO);

  if(Extrato)
   {
    LBDescricao->Caption = Meses[Mes]+"/"+IntToStr(Ano);
    LBCustosT->Caption = DSPesosTotais->GT("Custo"+IntToStr(Mes));
    LBCustosF->Caption = FormValor(FloatToStr(CustoFixoIndividual[Mes]),1,2);
    LBCustosV->Caption = FormValor(PesosDoMes[Mes]*ValorDoPeso[Mes],1,2);//FormValor(FloatToStr((double)DSPesosTotais->GV("Custo"+IntToStr(Mes))-CustoFixoIndividual[Mes]),1,2);
    LBFaturado->Caption = DSPesosTotais->GT("Faturado"+IntToStr(Mes));
    LBDiferenca->Caption = DSPesosTotais->GT("Diferenca"+IntToStr(Mes));

    if(MesAtual==MesFinal)
     {
      PHRBand4->Enabled = true;
      Extrato = false;
      MesAtual = MesInicial;
      Mes = RetornaData(DataStr(MesAtual),RDMES);
      Ano = RetornaData(DataStr(MesAtual),RDANO);
      LBMes->Caption = Format("%02.2d/%04d",ARRAYOFCONST(((int)Mes,(int)Ano)));
      LBPesoMes->Caption = FloatToStr(ValorDoPeso[Mes]);
      DSPesosTotais->First();
      LBContagemMes->Caption = DSPesosTotais->GT("Contagem"+IntToStr(Mes));
      LBTotalPesosMes->Caption = PesosDoMes[Mes];
      LBTotalReaisMes->Caption = FormValor(PesosDoMes[Mes]*ValorDoPeso[Mes],1,2);
     }
    else
     MesAtual = CalculaDatas(MesAtual,1,SOMADATAS_MESES);
   }
  else
   {
    PHRBand2->Enabled = false;
    PHRBand3->Enabled = false;

    DSPesosTotais->Next();
    if(DSPesosTotais->Eof)
     {
      PHRBand5->Enabled = false;
      if(MesAtual==MesFinal)
       MoreData = false;
      else
       {
        PHRBand4->Enabled = true;
        MesInicial = CalculaDatas(MesInicial,1,SOMADATAS_MESES);
        MesAtual = MesInicial;
        DSPesosTotais->First();
        Mes = RetornaData(DataStr(MesAtual),RDMES);
        Ano = RetornaData(DataStr(MesAtual),RDANO);
        LBMes->Caption = Format("%02.2d/%04d",ARRAYOFCONST(((int)Mes,(int)Ano)));
        LBPesoMes->Caption = FloatToStr(ValorDoPeso[Mes]);
        LBContagemMes->Caption = DSPesosTotais->GT("Contagem"+IntToStr(Mes));
        LBTotalPesosMes->Caption = PesosDoMes[Mes];
        LBTotalReaisMes->Caption = FormValor(PesosDoMes[Mes]*ValorDoPeso[Mes],1,2);
       }
     }
    else
     {
      PHRBand4->Enabled = false;
      if((int)DSPesosTotais->GV("Contagem"+IntToStr(Mes))>0)
       {
        PHRBand5->Enabled = true;
        int Nivel = DSPesosTotais->GV(PESOST_NIVEL);
        if((Nivel==2)||(Nivel==3))
         {
          LBDetalhe->Fonte->Bold = true;
          LBContagem->Fonte->Bold = true;
          LBPeso->Fonte->Bold = true;
          LBTotal->Fonte->Bold = true;
          LBTotalReais->Fonte->Bold = true;
         }
        else
         {
          LBDetalhe->Fonte->Bold = false;
          LBContagem->Fonte->Bold = false;
          LBPeso->Fonte->Bold = false;
          LBTotal->Fonte->Bold = false;
          LBTotalReais->Fonte->Bold = false;
         }
        LBContagem->Caption = DSPesosTotais->GT("Contagem"+IntToStr(Mes));
        LBTotalReais->Caption = DSPesosTotais->GT("Custo"+IntToStr(Mes));
        if(DSPesosTotais->GT(PESOST_PESO)!="")
         {
          LBTotal->Caption = IntToStr((int)DSPesosTotais->GV(PESOST_PESO) * (int)DSPesosTotais->GV("Contagem"+IntToStr(Mes)));
         }
        else
         {
          LBTotal->Caption = "";
         }
       }
      else
       {
        PHRBand5->Enabled = false;
       }
     }
   }
}
Exemplo n.º 4
0
Arquivo: dht.c Projeto: nja/dumhet
bstring Dht_PeerStr(Peer *peer)
{
    if (peer == NULL)
        return bfromcstr("(NULL Peer)");

    struct in_addr addr = { .s_addr = peer->addr };

    return bformat("%15s:%-5d", inet_ntoa(addr), peer->port);
}

bstring Dht_FTokenStr(struct FToken ftoken)
{
    if (ftoken.data == NULL)
        return bfromcstr("(NULL ftoken)");

    return HexStr(ftoken.data, ftoken.len);
}

bstring TidStr(char *data, size_t len)
{
    if (data == NULL)
        return bfromcstr("(NULL tid)");

    return HexStr(data, len);
}

bstring Dht_MessageTypeStr(MessageType type)
{
    switch (type)
    {
    case MUnknown:      return bfromcstr("MUnknown");
    case QPing:         return bfromcstr("QPing");
    case QFindNode:     return bfromcstr("QFindNode");
    case QGetPeers:     return bfromcstr("QGetPeers");
    case QAnnouncePeer: return bfromcstr("QAnnouncePeer");
    case RPing:         return bfromcstr("RPing");
    case RFindNode:     return bfromcstr("RFindNode");
    case RGetPeers:     return bfromcstr("RGetPeers");
    case RAnnouncePeer: return bfromcstr("RAnnouncePeer");
    case RError:        return bfromcstr("RError");
    default:            return bfromcstr("(Invalid MessageType");
    }
}

bstring Dht_RERROR_Str(int code)
{
    switch (code)
    {
    case RERROR_GENERIC:       return bfromcstr("GENERIC");
    case RERROR_SERVER:        return bfromcstr("SERVER");
    case RERROR_PROTOCOL:      return bfromcstr("PROTOCOL");
    case RERROR_METHODUNKNOWN: return bfromcstr("METHOD UNKNOWN");
    default:                   return bfromcstr("(UNKNOWN CODE)");
    }
}

bstring DataStr(Message *message);

bstring Dht_MessageStr(Message *message)
{
    if (message == NULL)
        return bfromcstr("(NULL Message)");

    bstring type = NULL, node = NULL, tid = NULL, id = NULL,
        str = NULL, data = NULL;

    type = Dht_MessageTypeStr(message->type);
    check_mem(type);

    node = Dht_NodeStr(&message->node);
    check_mem(node);

    tid = TidStr(message->t, message->t_len);
    check_mem(tid);

    id = Dht_HashStr(&message->id);
    check_mem(id);

    str = bformat(
        "%-13s Errors:%02X\n"
        "%s\n"
        "tid %s\n"
        "Id %s",
        type->data,
        message->errors,
        node->data,
        tid->data,
        id->data);
    check_mem(str);

    data = DataStr(message);
    check_mem(data);
    bconchar(str, '\n');
    bconcat(str, data);
    bdestroy(data);

    bdestroy(type);
    bdestroy(node);
    bdestroy(tid);
    bdestroy(id);

    return str;
error:
    bdestroy(type);
    bdestroy(node);
    bdestroy(tid);
    bdestroy(id);
    bdestroy(str);
    bdestroy(data);

    return NULL;
}

bstring DataQFindNodeStr(Message *message);
bstring DataQGetPeersStr(Message *message);
bstring DataQAnnouncePeerStr(Message *message);
bstring DataRFindNodeStr(Message *message);
bstring DataRGetPeersStr(Message *message);
bstring DataRErrorStr(Message *message);

bstring DataStr(Message *message)
{
    if (message == NULL)
        return bfromcstr("(NULL Message)");

    switch (message->type)
    {
    case MUnknown:
    case QPing:
    case RPing:
    case RAnnouncePeer:
        return bfromcstr("");   /* No data. */
    case QFindNode: return DataQFindNodeStr(message);
    case QGetPeers: return DataQGetPeersStr(message);
    case QAnnouncePeer: return DataQAnnouncePeerStr(message);
    case RFindNode: return DataRFindNodeStr(message);
    case RGetPeers: return DataRGetPeersStr(message);
    case RError: return DataRErrorStr(message);
    default: return bfromcstr("(Invalid MessageType)");
    }
}

bstring DataQFindNodeStr(Message *message)
{
    bstring target = Dht_HashStr(message->data.qfindnode.target);

    bstring str = bformat("QFindNode target: %s", target->data);

    bdestroy(target);

    return str;
}
//---------------------------------------------------------------------------
void __fastcall TExpPHNormal::ProcessaRegistros(TObject *Sender)
{
  Evolucao1->SetProcess();
  try
   {
    double TotalFat = 0.00;
    double ValorTotal = 0.00;
    int QuantidadeFat = 0;
    int QuantidadeDocs = 0;
    int MesAtual;
    int AnoAtual;
    AnsiString Arquivo = IntToStr(0).sprintf("%sMOVSAI_%s.TXT",GetArquivo(),DataStr(GetMesAno()));
    TSMensagens->Add("SAÍDAS:");
    TSMensagens->Add("-------");
    GPH = new TGrvPH;

    TStringList *Notas = new TStringList;
    try
     {
      Notas->Duplicates = dupAccept;
      Notas->Sorted = true;
      GPH->AbreArquivo(Arquivo);

      //Seta Registro 10
      SetReg10();
      for(int m = 0; m < 2; m++)
       {
        if(m == 0)
         {
          MesAtual = MesAnterior;
          AnoAtual = AnoAnterior;
         }
        else
         {
          MesAtual = Mes;
          AnoAtual = Ano;
         }

        //Determina o mês do faturamento
        DSFat->Close();
        DSFat->MesNomeArq = MesAtual;
        DSFat->AnoNomeArq = AnoAtual;
        DSFat->IndiceNome = "DataEmissao";
        DSFat->Open(true);
        SrcFat = (struct FAT *)DSFat->Buffer;
        DSFat->First();

        //Determina o mês dos detalhamentos
        DSDetFat->Close();
        DSDetFat->MesNomeArq = MesAtual;
        DSDetFat->AnoNomeArq = AnoAtual;
        DSDetFat->Range = false;
        DSDetFat->Filtrado = false;
        DSDetFat->Open(true);
        SrcDetFat = (struct DETFAT *)DSDetFat->Buffer;

        //Determina o mês dos detalhamentos das retenções
        DSDetRet->Close();
        DSDetRet->MesNomeArq = MesAtual;
        DSDetRet->AnoNomeArq = AnoAtual;
        DSDetRet->Open(true);
        SrcDetRet = (struct DETRET *)DSDetRet->Buffer;
        Evolucao1->StartProcess(DSFat->CountReg());
        while(!DSFat->Eof)
         {
          Evolucao1->Label1->Caption = "Faturamento: " + DSFat->GTLK(FAT_CLIENTE,CLI_NOME,0);
          Evolucao1->Label1->Update();
          Evolucao1->ProcessAdd();
          if(SrcFat->DataEmissao / 100 != MesAno)
           {
            DSFat->Next();
            continue;
           }

          SetValorContabil();
          QuantidadeFat++;
          TotalFat += GetValorContabil();
          if(GetValorContabil() > 0.0099 && SrcFat->NotaFiscal > 0) //Para não gerar dos Lançamentos que não for selecionado pelo menos um Item
           {
            ValorTotal += GetValorContabil();
            QuantidadeDocs++;
            SetReg20S(SrcFat->DataEmissao);
            SetReg21S();
            SetReg22S();
            SetReg23S();
            SetReg26();
            SetReg33();
            SetReg35();
            SetReg37(GetValorContabil());
            GPH->GravaRegistros();
           }
          else
           {
            if(SrcFat->NotaFiscal < 1)
             {
              TSMensagens->Add("Lançamento '" + IntToStr(SrcFat->Lancamento) + "' não foi gerado pois não possui número da NF.");
             }
            else
             {
              TSMensagens->Add("Lançamento '" + IntToStr(SrcFat->Lancamento) + "' não foi gerado por falta de valores.");
             }
           }

          Notas->Add(IntToStr(0).sprintf("%08d", SrcFat->NotaFiscal));
          DSFat->Next();
          Application->ProcessMessages();
          if(Evolucao1->Interrompe())
           {
            throw Exception("Processamento interrompido.");
           }
         }
       }

      GPH->Reg90();

      // verifica sequencia de notas
      long NotaAnterior = -1;
      long NotaAtual;
      for(int n = 0; n < Notas->Count; n++)
       {
        if(NotaAnterior != -1)
         {
          NotaAtual = StrToInt(Notas->Strings[n]);
          if(NotaAnterior == NotaAtual)
           {
            TSMensagens->Add("Nota Fiscal número '" + IntToStr(NotaAtual) + "' está duplicada.");
           }
          else if(NotaAtual > NotaAnterior + 1)
           {
            for(int NotaFaltando = NotaAnterior + 1; NotaFaltando < NotaAtual; NotaFaltando++)
             {
              TSMensagens->Add("Nota Fiscal número '" + IntToStr(NotaFaltando) + "' está faltando.");
             }
           }
         }

        NotaAnterior = StrToInt(Notas->Strings[n]);
       }
     }

    __finally
     {
      GPH->FechaArquivo();
      delete GPH;
      delete Notas;
     }

    TSMensagens->Add("Quantidade Total de Lançamentos encontrados: " + FloatToStr(QuantidadeFat));
    TSMensagens->Add("Valor Total dos Lançamentos encontrados: " + FormValor(FloatToStr(TotalFat), 1, 2));
    TSMensagens->Add("Quantidade Total dos Documentos gerados: " + FloatToStr(QuantidadeDocs));
    TSMensagens->Add("Valor Total dos Documentos gerados: " + FormValor(FloatToStr(ValorTotal), 1, 2));
    TSMensagens->Add("Arquivo Gerado: " + Arquivo);
    ValorTotal = 0.00;
    QuantidadeDocs = 0;
    Arquivo = IntToStr(0).sprintf("%sMOVENT_%s.TXT",GetArquivo(),DataStr(GetMesAno()));
    TSMensagens->Add("");
    TSMensagens->Add("ENTRADAS:");
    TSMensagens->Add("---------");
    DSCntPg->First();
    GPH = new TGrvPH;
    try
     {
      Evolucao1->ResetEvolucao("Gerando Arquivo","Contas a Pagar");
      Evolucao1->StartProcess(DSCntPg->CountReg());
      GPH->AbreArquivo(Arquivo);

      //Seta Registro 10
      SetReg10();
      while(!DSCntPg->Eof)
       {
        Evolucao1->Label1->Caption = "Contas a Pagar:" + DSCntPg->GTLK(CNTPG_FORNECEDORCREDOR,FORN_NOME,0);
        Evolucao1->Label1->Update();
        Evolucao1->ProcessAdd();
        ValorTotal += SrcCntPg->Valor;
        QuantidadeDocs++;
        SetReg20E();
        SetReg21E();
        SetReg22E();
        SetReg23E();
        SetReg37(SrcCntPg->Valor);
        GPH->GravaRegistros();
        DSCntPg->Next();
        Application->ProcessMessages();
        if(Evolucao1->Interrompe())
         {
          throw Exception("Processamento interrompido.");
         }
       }

      GPH->Reg90();
     }

    __finally
     {
      GPH->FechaArquivo();
      delete GPH;
     }

    TSMensagens->Add("Quantidade Total de Documentos: " + FloatToStr(QuantidadeDocs));
    TSMensagens->Add("Valor Total dos Documentos: " + FormValor(FloatToStr(ValorTotal), 1, 2));
    TSMensagens->Add("Arquivo Gerado: " + Arquivo);
   }

  __finally
   {
    Evolucao1->Close();
   }
}