//--------------------------------------------------------------------------- void __fastcall TBolBradesco::SetMesAno(unsigned long MesAno) { Periodo = DataStr(MesAno); MesBoleto = Periodo.SubString(1,2); AnoBoleto = Periodo.SubString(6,1); MesAnoBoleto = MesBoleto+AnoBoleto; };
//--------------------------------------------------------------------------- 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; } }
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; } } } }
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(); } }