unit UNFSe;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, BusinessSkinForm, bsSkinCtrls, bsSkinGrids, bsDBGrids, StdCtrls,
bsSkinData, Mask, bsSkinBoxCtrls, bsdbctrls, DateUtils, UTypes, DB, ADODB, UConfig,
UntPrincipalDLL, UClasses, SnapBaseDataset, SnapVirtualDataset, Grids,
DBGrids, JvExDBGrids, JvDBGrid, Midas, Buttons, JvgGroupBox, JvComponentBase,
JvgCaption, JvExButtons, JvBitBtn, JvExStdCtrls, JvExControls,
JvLabel, JvExMask, URotinas, JvGradient, JvGradientHeaderPanel,
JvgExportComponents, frxClass, frxDBSet, JvAnimatedImage, JvGIFCtrl, ExtCtrls,
JvExExtCtrls, JvExtComponent, JvPanel, SnapObjectDataset,StrUtils, JvCombobox,
JvToolEdit, DBClient, frxExportText, frxExportPDF;
type
TfrmNotas = class(TForm)
dsNFSe: TDataSource;
grbFiltro: TJvgGroupBox;
DateInicial: TJvDateEdit;
JvLabel1: TJvLabel;
JvLabel2: TJvLabel;
DateFim: TJvDateEdit;
JvLabel3: TJvLabel;
cmbStatus: TJvComboBox;
btnFiltrar: TJvBitBtn;
dbgridNFS: TJvDBGrid;
gpnlBotoes: TJvGradientHeaderPanel;
btnCancelar: TJvBitBtn;
btnExportar: TJvBitBtn;
btnConsultar: TJvBitBtn;
btnImprimir: TJvBitBtn;
btnEnviar: TJvBitBtn;
JvGradient1: TJvGradient;
JvGradient2: TJvGradient;
frxrptReciboRPS: TfrxReport;
frxDBdstRecibo: TfrxDBDataset;
pnlSleep: TJvPanel;
gifSleep: TJvGIFAnimator;
lblMensagem: TLabel;
svdItensNFs: TSnapVirtualDataset;
svdItensNFsDescricao: TStringField;
svdItensNFsQuantidade: TFloatField;
svdItensNFsVrUnitario: TFloatField;
svdItensNFsVrTotal: TFloatField;
frxdbdstItensRecibo: TfrxDBDataset;
svdNFsSelecteds: TSnapVirtualDataset;
svdNFsSelectedsDtEmissao: TDateTimeField;
svdNFsSelectedsTotal: TCurrencyField;
svdNFsSelectedsId_NotaFiscal: TIntegerField;
svdNFsSelectedsRPS: TIntegerField;
svdNFsSelectedsPrestador_RazaoSocial: TStringField;
svdNFsSelectedsPrestador_Bairro: TStringField;
svdNFsSelectedsPrestador_Numero: TStringField;
svdNFsSelectedsPrestador_Complemento: TStringField;
svdNFsSelectedsPrestador_Rua: TStringField;
svdNFsSelectedsPrestador_Cidade: TStringField;
svdNFsSelectedsPrestador_UF: TStringField;
svdNFsSelectedsPrestador_IM: TStringField;
svdNFsSelectedsPrestador_CEP: TStringField;
svdNFsSelectedsTomador_RazaoSocial: TStringField;
svdNFsSelectedsTomador_CNPJCPF: TStringField;
svdNFsSelectedsTomador_Bairro: TStringField;
svdNFsSelectedsTomador_Numero: TStringField;
svdNFsSelectedsTomador_Complemento: TStringField;
svdNFsSelectedsTomador_Rua: TStringField;
svdNFsSelectedsTomador_Cidade: TStringField;
svdNFsSelectedsTomador_UF: TStringField;
svdNFsSelectedsTomador_IM: TStringField;
svdNFsSelectedsTomador_CEP: TStringField;
svdNFsSelectedsTomador_Email: TStringField;
svdNFsSelectedsDescricao: TWideStringField;
svdNFsSelectedsPercPIS: TCurrencyField;
svdNFsSelectedsValorPIS: TCurrencyField;
svdNFsSelectedsPercCOFINS: TCurrencyField;
svdNFsSelectedsValorCOFINS: TCurrencyField;
svdNFsSelectedsPercIR: TCurrencyField;
svdNFsSelectedsValorIR: TCurrencyField;
svdNFsSelectedsPercINSS: TCurrencyField;
svdNFsSelectedsValorINSS: TCurrencyField;
svdNFsSelectedsTotalDeducoes: TCurrencyField;
svdNFsSelectedsValorISS: TCurrencyField;
svdNFsSelectedsPercCSLL: TCurrencyField;
svdNFsSelectedsValorCSLL: TCurrencyField;
svdNFsSelectedsPercISS: TCurrencyField;
svdNFsSelectedsPrestador_CNPJCPF: TStringField;
svdNFs: TSnapVirtualDataset;
svdNFsEscolhido: TBooleanField;
svdNFsSerie: TStringField;
svdNFsDtEmissao: TDateTimeField;
svdNFsStatus: TSmallintField;
svdNFsTotal: TCurrencyField;
svdNFsId_NotaFiscal: TIntegerField;
svdNFsPrestador_CNPJCPF: TStringField;
svdNFsPrestador_RazaoSocial: TStringField;
svdNFsTomador_RazaoSocial: TStringField;
svdNFsTomador_CNPJCPF: TStringField;
svdNFsDtEnvio: TDateTimeField;
svdNFsDtProcessada: TDateTimeField;
svdNFsDtCancelada: TDateTimeField;
cdsNFSe: TClientDataSet;
cdsNFSeEscolhido: TBooleanField;
cdsNFSeSerie: TStringField;
cdsNFSeDtEmissao: TDateTimeField;
cdsNFSeStatus: TSmallintField;
cdsNFSeTotal: TCurrencyField;
cdsNFSeId_NotaFiscal: TIntegerField;
cdsNFSePrestador_CNPJCPF: TStringField;
cdsNFSePrestador_RazaoSocial: TStringField;
cdsNFSeTomador_RazaoSocial: TStringField;
cdsNFSeTomador_CNPJCPF: TStringField;
cdsNFSeDtEnvio: TDateTimeField;
cdsNFSeDtProcessada: TDateTimeField;
cdsNFSeDtCancelada: TDateTimeField;
frxexpPFD: TfrxPDFExport;
frxexpText: TfrxSimpleTextExport;
DataSource1: TDataSource;
DataSource2: TDataSource;
procedure FormCreate(Sender: TObject);
procedure dbgridNfsValidaCelula(Sender: TObject; Column: TbsColumn;
var Valido: Boolean);
procedure FormDestroy(Sender: TObject);
procedure btnFiltrarClick(Sender: TObject);
procedure svdNFsGetDataValue(Sender: TSnapCustomDataset; AField: TField;
AIndex: Integer; var AValue: Variant);
procedure svdNFsSetDataValue(Sender: TSnapCustomDataset; AField: TField;
AIndex: Integer; AValue: Variant);
procedure svdNFsGetDataCount(Sender: TSnapCustomDataset;
var ACount: Integer);
procedure dbgridNFSKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure svdNFsStatusGetText(Sender: TField; var Text: string;
DisplayText: Boolean);
procedure btnEnviarClick(Sender: TObject);
procedure dsNFSeDataChange(Sender: TObject; Field: TField);
procedure btnConsultarClick(Sender: TObject);
procedure svdNFsBeforeInsert(DataSet: TDataSet);
procedure svdNFsBeforeDelete(DataSet: TDataSet);
procedure gifSleepStart(Sender: TObject);
procedure svdNFsDtEmissaoGetText(Sender: TField; var Text: string;
DisplayText: Boolean);
procedure btnImprimirClick(Sender: TObject);
procedure svdItensNFsGetDataCount(Sender: TSnapCustomDataset;
var ACount: Integer);
procedure svdItensNFsGetDataValue(Sender: TSnapCustomDataset;
AField: TField; AIndex: Integer; var AValue: Variant);
procedure svdNFsSelectedsGetDataCount(Sender: TSnapCustomDataset;
var ACount: Integer);
procedure svdNFsSelectedsGetDataValue(Sender: TSnapCustomDataset;
AField: TField; AIndex: Integer; var AValue: Variant);
procedure svdNFsSelectedsAfterScroll(DataSet: TDataSet);
procedure cdsNFSeAfterPost(DataSet: TDataSet);
procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
private
FNotas :TNFSs;
FErro: Integer;
FStatusAtual :TStatusNFSe;
procedure SetErro(const Value: Integer);
procedure CarregaClient(DataSet :TClientDataSet);
procedure GetDataValue(AField :TField; AIndex :Integer);
procedure SetDataValue(AField :TField; AIndex :Integer);
public
procedure ShowSleep(AMensagem :string = '');
procedure HideSleep;
procedure ControlaBotoes(AStatus :TStatusNFSe);
property Erro :Integer read FErro write SetErro;
end;
var
frmNotas: TfrmNotas;
implementation
uses UMensagens;
{$R *.dfm}
procedure TfrmNotas.btnConsultarClick(Sender: TObject);
var
i :Integer;
Lotes :TLotesNFSe;
begin
try
ShowSleep('Consultando Lotes...');
Lotes := TLotesNFSe.Create;
for I := 0 to FNotas.Selected.Count - 1 do
Lotes.Add(FNotas.Selected.Items[i].NFSe.Lote);
for I := 0 to Lotes.Count - 1 do
Lotes.Items[i].Consultar;
finally
HideSleep;
btnFiltrar.Click;
end;
end;
procedure TfrmNotas.btnEnviarClick(Sender: TObject);
var
I,E, vUltimoNumeroRPS, vCodCidade: Integer;
vnfse :TNFSes;
vEmpresas :TEmpresas;
vPrestador_CNPJCPF,
vPrestador_InscrMunicipal :PWideChar;
vLote :TLoteNFSe;
begin
if svdNFs.State in [dsInsert, dsEdit] then
svdNFs.Post;
vEmpresas := FNotas.Selected.Empresas;
try
ShowSleep('Enviando Notas');
for E := 0 to vEmpresas.Count - 1 do
try
if Assigned(vnfse) then
vnfse := nil;
vnfse := TNFSes.Create;
vnfse.Clear;
vUltimoNumeroRPS := 0;
vPrestador_CNPJCPF := pwidechar(vEmpresas.Items[E].CNPJ_CPF.OnlyNumber.Value);
vPrestador_InscrMunicipal := pwidechar(vEmpresas.Items[E].InscrMunicipal.OnlyNumber.Value);
vCodCidade := vEmpresas.Items[E].Cidade.SIAFI;
GetErro(ConsultarSeqRps(vCodCidade,vPrestador_CNPJCPF,vPrestador_InscrMunicipal,vUltimoNumeroRPS));
for I := 0 to FNotas.Selected.Count - 1 do
if FNotas.Selected.Items[I].Prestador.Equals(vEmpresas.Items[E]) then
begin
Inc(vUltimoNumeroRPS);
if Assigned(FNotas.Selected.Items[I].NFSe.NFS) then
begin
if FNotas.Selected.Items[I].NFSe.NumeroRPS < vUltimoNumeroRPS then
FNotas.Selected.Items[I].NFSe.NumeroRPS := vUltimoNumeroRPS;
vnfse.Add(FNotas.Selected.Items[I].NFSe);
end
else
with vnfse.add do
begin
NFS := FNotas.Selected.Items[I];
NumeroRPS := vUltimoNumeroRPS;
end;
end;
try
vLote := TLoteNFSe.Create;
vLote.NFSes := vnfse;
if vLote.Enviar(vEmpresas.Items[E],False) then
begin
vLote.Post;
vLote.NFSes.Post(False);
end;
finally
if Assigned(vnfse) then
vnfse := nil;
FreeAndNil(vLote);
end;
finally
if Assigned(vnfse) then
vnfse := nil;
end;
finally
HideSleep;
btnFiltrar.Click;
end;
end;
procedure TfrmNotas.btnFiltrarClick(Sender: TObject);
begin
try
FStatusAtual := TStatusNFSe(cmbStatus.ItemIndex);
// svdNFs.Close;
ShowSleep;
FNotas.Filter(DateInicial.Date,DateFim.Date,FStatusAtual);
// svdNFs.Open;
CarregaClient(cdsNFSe);
case FStatusAtual of
snfseEnviada :begin
dbgridNFS.Columns[4].Visible := True;
dbgridNFS.Columns[4].FieldName := cdsNFSeDtEnvio.FieldName;
end;
snfseProcessada :begin
dbgridNFS.Columns[4].Visible := True;
dbgridNFS.Columns[4].FieldName := cdsNFSeDtProcessada.FieldName;
end;
snfseCancelada :begin
dbgridNFS.Columns[4].Visible := True;
dbgridNFS.Columns[4].FieldName := cdsNFSeDtCancelada.FieldName;
end;
else
begin
dbgridNFS.Columns[4].Visible := False;
dbgridNFS.Columns[4].FieldName := '';
end;
end;
dbgridNFS.SetFocus;
ControlaBotoes(FStatusAtual);
finally
HideSleep;
end;
end;
procedure TfrmNotas.btnImprimirClick(Sender: TObject);
begin
try
svdNFsSelecteds.Close;
svdNFsSelecteds.Open;
svdNFsSelecteds.First;
frxrptReciboRPS.LoadFromFile(IncludeTrailingBackslash(Config.PathReports) + 'rps.fr3');
frxrptReciboRPS.Script.Variables['Imagem'] := Config.PathLogo;
frxrptReciboRPS.ShowReport;
except
on e:exception do
GeraErro(e.Message);
end;
end;
procedure TfrmNotas.CarregaClient(DataSet: TClientDataSet);
var
I,f: Integer;
begin
if Assigned(FNotas) and
Assigned(DataSet) then
begin
DataSet.Close;
DataSet.CreateDataSet;
DataSet.DisableControls;
DataSet.Tag := -1;
for I := 0 to FNotas.Count - 1 do
begin
DataSet.Append;
for f := 0 to DataSet.FieldCount - 1 do
GetDataValue(DataSet.Fields[f],I);
DataSet.Post;
end;
DataSet.Tag := 0;
DataSet.First;
DataSet.EnableControls;
ControlaBotoes(FStatusAtual);
end;
end;
procedure TfrmNotas.cdsNFSeAfterPost(DataSet: TDataSet);
begin
if DataSet.Tag > -1 then
SetDataValue(cdsNFSeEscolhido,DataSet.RecNo-1);
end;
procedure TfrmNotas.ControlaBotoes(AStatus: TStatusNFSe);
begin
btnEnviar.Enabled := Assigned(FNotas) and
(AStatus in [snfseEmDigitacao,snfseEnviada]) and (FNotas.Selected.Count > 0);
btnCancelar.Enabled := Assigned(FNotas) and
(AStatus = snfseProcessada) and (FNotas.Selected.Count > 0);
btnImprimir.Enabled := Assigned(FNotas) and
(AStatus <> snfseEmDigitacao) and (FNotas.Selected.Count > 0);
// btnExportar.Enabled := Assigned(FNotas) and
// (AStatus <> snfseEmDigitacao) and (FNotas.Selected.Count > 0);
btnConsultar.Enabled := Assigned(FNotas) and
(AStatus = snfseEnviada) and (FNotas.Selected.Count > 0);
end;
procedure TfrmNotas.dbgridNFSKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (Shift = [ssCtrl]) and
Assigned(FNotas) then
begin
case Key of
Ord('T'): begin
FNotas.SelectAll;
// svdNFs.Close;
// svdNFs.Open;
CarregaClient(cdsNFSe);
end;
Ord('L'): begin
FNotas.DeselectAll;
// svdNFs.Close;
// svdNFs.Open;
CarregaClient(cdsNFSe);
end;
end;
end;
end;
procedure TfrmNotas.dbgridNfsValidaCelula(Sender: TObject; Column: TbsColumn;
var Valido: Boolean);
begin
Valido := UpperCase(Column.FieldName) = 'ESCOLHIDO';
end;
procedure TfrmNotas.dsNFSeDataChange(Sender: TObject; Field: TField);
begin
ControlaBotoes(FStatusAtual);
end;
procedure TfrmNotas.FormCreate(Sender: TObject);
var
statusnfse :TStringList;
begin
statusnfse := StatusNFsToStrings;
cmbStatus.Items := statusnfse;
FreeAndNil(statusnfse);
cmbStatus.ItemIndex := Ord(snfseEmDigitacao);
DateInicial.Clear;
DateFim.Clear;
DateInicial.Date := StartOfTheMonth(Date);
DateFim.Date := EndOfTheMonth(Date);
ControlaBotoes(snfseEmDigitacao);
HideSleep;
if not Assigned(FNotas) then
FNotas := TNFSs.Create;
end;
procedure TfrmNotas.FormDestroy(Sender: TObject);
begin
if Assigned(FNotas) then
FreeAndNil(FNotas);
end;
procedure TfrmNotas.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
case Key of
VK_F2 : if btnFiltrar.Enabled and
btnFiltrar.Visible then
btnFiltrar.Click;
VK_F5 : if btnEnviar.Enabled and
btnEnviar.Visible then
btnEnviar.Click;
VK_F6 : if btnConsultar.Enabled and
btnConsultar.Visible then
btnConsultar.Click;
VK_F7 : if btnCancelar.Enabled and
btnCancelar.Visible then
btnCancelar.Click;
VK_F8 : if btnImprimir.Enabled and
btnImprimir.Visible then
btnImprimir.Click;
end;
end;
procedure TfrmNotas.GetDataValue(AField: TField; AIndex :Integer);
begin
if (AIndex > -1) and
Assigned(AField) and
Assigned(FNotas) and
Assigned(FNotas.Items[AIndex]) then
with FNotas.Items[AIndex] do
begin
if AField.FieldName = cdsNFSeEscolhido.FieldName then
AField.AsBoolean := Escolhido;
if AField.FieldName = cdsNFSeDtEmissao.FieldName then
AField.AsDateTime := DtEmissaoRPS;
if AField.FieldName = cdsNFSeId_NotaFiscal.FieldName then
AField.AsInteger := Id_NotaFiscal;
if AField.FieldName = cdsNFSeSerie.FieldName then
AField.AsString := Serie;
if AField.FieldName = cdsNFSeStatus.FieldName then
if Assigned(NFSe) then
AField.AsInteger := Ord(NFSe.Status)
else
AField.AsInteger := Ord(snfseEmDigitacao);
if AField.FieldName = cdsNFSeTotal.FieldName then
AField.AsCurrency := Total;
if AField.FieldName = cdsNFSeTomador_RazaoSocial.FieldName then
if Assigned(Tomador) then
AField.AsString := Tomador.RazaoSocial
else
AField.AsString := '';
if AField.FieldName = cdsNFSeTomador_CNPJCPF.FieldName then
if Assigned(Tomador) then
AField.AsString := Tomador.CNPJ_CPF.Formatted
else
AField.AsString := '';
if AField.FieldName = cdsNFSePrestador_RazaoSocial.FieldName then
if Assigned(Prestador) then
AField.AsString := Prestador.RazaoSocial
else
AField.AsString := '';
if AField.FieldName = cdsNFSePrestador_CNPJCPF.FieldName then
if Assigned(Prestador) then
AField.AsString := Prestador.CNPJ_CPF.Value
else
AField.AsString := '';
if AField.FieldName = cdsNFSeDtEnvio.FieldName then
if Assigned(NFSe) then
AField.AsDateTime := NFSe.DtEnvio
else
AField.Value := Null;
if AField.FieldName = cdsNFSeDtProcessada.FieldName then
if Assigned(NFSe) then
AField.AsDateTime := NFSe.DtProcessada
else
AField.Value := Null;
if AField.FieldName = cdsNFSeDtCancelada.FieldName then
if Assigned(NFSe) then
AField.AsDateTime := NFSe.DtCancelada
else
AField.Value := Null;
end;
end;
procedure TfrmNotas.gifSleepStart(Sender: TObject);
begin
Application.ProcessMessages;
end;
procedure TfrmNotas.HideSleep;
begin
pnlSleep.Visible := False;
gifSleep.Animate := False;
end;
procedure TfrmNotas.SetDataValue(AField: TField; AIndex: Integer);
begin
if (AIndex > -1) and
Assigned(AField) and
Assigned(FNotas) and
Assigned(FNotas.Items[AIndex]) then
with FNotas.Items[AIndex] do
begin
if AField.FieldName = cdsNFSeEscolhido.FieldName then
Escolhido := AField.AsBoolean;
end;
end;
procedure TfrmNotas.SetErro(const Value: Integer);
begin
FErro := Value;
end;
procedure TfrmNotas.ShowSleep(AMensagem :string);
begin
if Trim(AMensagem) = '' then
lblMensagem.Caption := 'Carregando Dados'
else
lblMensagem.Caption := AMensagem;
gifSleep.Animate := true;
pnlSleep.Visible := True;
Application.ProcessMessages;
end;
procedure TfrmNotas.svdItensNFsGetDataCount(Sender: TSnapCustomDataset;
var ACount: Integer);
begin
ACount := FNotas.Selected.Items[svdNFsSelecteds.RecNo-1].Itens.Count;
end;
procedure TfrmNotas.svdItensNFsGetDataValue(Sender: TSnapCustomDataset;
AField: TField; AIndex: Integer; var AValue: Variant);
begin
if Assigned(FNotas) and
(FNotas.Selected <> nil) and
Assigned(FNotas.Selected.Items[svdNFsSelecteds.RecNo-1].Itens) and
Assigned(FNotas.Selected.Items[svdNFsSelecteds.RecNo-1].Itens.Items[AIndex]) then
with FNotas.Items[svdNFsSelecteds.RecNo-1].Itens.Items[AIndex] do
begin
if AField.FieldName = svdItensNFsDescricao.FieldName then
AValue := Descricao.Value;
if AField.FieldName = svdItensNFsQuantidade.FieldName then
AValue := Quantidade;
if AField.FieldName = svdItensNFsVrUnitario.FieldName then
AValue := Unitario;
if AField.FieldName = svdItensNFsVrTotal.FieldName then
AValue := Total;
end;
end;
procedure TfrmNotas.svdNFsBeforeDelete(DataSet: TDataSet);
begin
Abort;
end;
procedure TfrmNotas.svdNFsBeforeInsert(DataSet: TDataSet);
begin
Abort;
end;
procedure TfrmNotas.svdNFsDtEmissaoGetText(Sender: TField; var Text: string;
DisplayText: Boolean);
begin
if (Sender.IsNull) or (Sender.AsDateTime = 0) then
Text := ''
else
Text := Sender.AsString;
end;
procedure TfrmNotas.svdNFsGetDataCount(Sender: TSnapCustomDataset;
var ACount: Integer);
begin
ACount := FNotas.Count;
end;
procedure TfrmNotas.svdNFsGetDataValue(Sender: TSnapCustomDataset;
AField: TField; AIndex: Integer; var AValue: Variant);
begin
if Assigned(FNotas) and
Assigned(FNotas.Items[AIndex]) then
with FNotas.Items[AIndex] do
Begin
if AField.FieldName = svdNFsEscolhido.FieldName then
AValue := Escolhido;
if AField.FieldName = svdNFsDtEmissao.FieldName then
AValue := DtEmissaoRPS;
if AField.FieldName = svdNFsId_NotaFiscal.FieldName then
AValue := Id_NotaFiscal;
if AField.FieldName = svdNFsSerie.FieldName then
AValue := Serie;
if AField.FieldName = svdNFsStatus.FieldName then
if Assigned(NFSe) then
AValue := Ord(NFSe.Status)
else
AValue := Ord(snfseEmDigitacao);
if AField.FieldName = svdNFsTotal.FieldName then
AValue := Total;
if AField.FieldName = svdNFsTomador_RazaoSocial.FieldName then
if Assigned(Tomador) then
AValue := Tomador.RazaoSocial
else
AValue := '';
if AField.FieldName = svdNFsTomador_CNPJCPF.FieldName then
if Assigned(Tomador) then
AValue := Tomador.CNPJ_CPF.Formatted
else
AValue := '';
if AField.FieldName = svdNFsPrestador_RazaoSocial.FieldName then
if Assigned(Prestador) then
AValue := Prestador.RazaoSocial
else
AValue := '';
if AField.FieldName = svdNFsPrestador_CNPJCPF.FieldName then
if Assigned(Prestador) then
AValue := Prestador.CNPJ_CPF.Value
else
AValue := '';
if AField.FieldName = svdNFsDtEnvio.FieldName then
if Assigned(NFSe) then
AValue := NFSe.DtEnvio
else
AValue := 0;
if AField.FieldName = svdNFsDtProcessada.FieldName then
if Assigned(NFSe) then
AValue := NFSe.DtProcessada
else
AValue := 0;
if AField.FieldName = svdNFsDtCancelada.FieldName then
if Assigned(NFSe) then
AValue := NFSe.DtCancelada
else
AValue := 0;
End;
end;
procedure TfrmNotas.svdNFsSelectedsAfterScroll(DataSet: TDataSet);
begin
svdItensNFs.Close;
svdItensNFs.Open;
end;
procedure TfrmNotas.svdNFsSelectedsGetDataCount(Sender: TSnapCustomDataset;
var ACount: Integer);
begin
ACount := FNotas.Selected.Count;
end;
procedure TfrmNotas.svdNFsSelectedsGetDataValue(Sender: TSnapCustomDataset;
AField: TField; AIndex: Integer; var AValue: Variant);
begin
if Assigned(FNotas) and
(FNotas.Selected <> nil) and
Assigned(FNotas.Selected.Items[AIndex]) then
with FNotas.Selected.Items[AIndex] do
Begin
if AField.FieldName = svdNFsSelectedsDtEmissao.FieldName then
AValue := DtEmissaoRPS;
if AField.FieldName = svdNFsSelectedsId_NotaFiscal.FieldName then
AValue := Id_NotaFiscal;
if AField.FieldName = svdNFsSelectedsTotal.FieldName then
AValue := Total;
if AField.FieldName = svdNFsSelectedsTomador_RazaoSocial.FieldName then
if Assigned(Tomador) then
AValue := Tomador.RazaoSocial
else
AValue := '';
if AField.FieldName = svdNFsSelectedsTomador_Bairro.FieldName then
if Assigned(Tomador) then
AValue := Tomador.Bairro
else
AValue := '';
if AField.FieldName = svdNFsSelectedsTomador_CEP.FieldName then
if Assigned(Tomador) then
AValue := Tomador.CEP.Formatted('#####-###')
else
AValue := '';
if AField.FieldName = svdNFsSelectedsTomador_Cidade.FieldName then
if Assigned(Tomador) and
Assigned(Tomador.Cidade) then
AValue := Tomador.Cidade.Nome
else
AValue := '';
if AField.FieldName = svdNFsSelectedsTomador_CNPJCPF.FieldName then
if Assigned(Tomador) then
AValue := Tomador.CNPJ_CPF.Formatted
else
AValue := '';
if AField.FieldName = svdNFsSelectedsTomador_Complemento.FieldName then
if Assigned(Tomador) then
AValue := Tomador.Complemento
else
AValue := '';
if AField.FieldName = svdNFsSelectedsTomador_Email.FieldName then
if Assigned(Tomador) then
AValue := Tomador.Email
else
AValue := '';
if AField.FieldName = svdNFsSelectedsTomador_IM.FieldName then
if Assigned(Tomador) then
AValue := Tomador.InscrMunicipal.Value
else
AValue := '';
if AField.FieldName = svdNFsSelectedsTomador_Numero.FieldName then
if Assigned(Tomador) then
AValue := Tomador.NumeroEnd.Value
else
AValue := '';
if AField.FieldName = svdNFsSelectedsTomador_Rua.FieldName then
if Assigned(Tomador) then
AValue := Tomador.Endereco
else
AValue := '';
if AField.FieldName = svdNFsSelectedsTomador_UF.FieldName then
if Assigned(Tomador) and
Assigned(Tomador.Cidade) and
Assigned(Tomador.Cidade.Estado) then
AValue := Tomador.Cidade.Estado.Uf
else
AValue := '';
if AField.FieldName = svdNFsSelectedsPrestador_RazaoSocial.FieldName then
if Assigned(Prestador) then
AValue := Prestador.RazaoSocial
else
AValue := '';
if AField.FieldName = svdNFsSelectedsPrestador_Bairro.FieldName then
if Assigned(Prestador) then
AValue := Prestador.Bairro
else
AValue := '';
if AField.FieldName = svdNFsSelectedsPrestador_CEP.FieldName then
if Assigned(Prestador) then
AValue := Prestador.CEP.Formatted('99999-999')
else
AValue := '';
if AField.FieldName = svdNFsSelectedsPrestador_Cidade.FieldName then
if Assigned(Prestador) and
Assigned(Prestador.Cidade) then
AValue := Prestador.Cidade.Nome
else
AValue := '';
if AField.FieldName = svdNFsSelectedsPrestador_CNPJCPF.FieldName then
if Assigned(Prestador) then
AValue := Prestador.CNPJ_CPF.Formatted
else
AValue := '';
if AField.FieldName = svdNFsSelectedsPrestador_Complemento.FieldName then
if Assigned(Prestador) then
AValue := Prestador.Complemento
else
AValue := '';
if AField.FieldName = svdNFsSelectedsPrestador_IM.FieldName then
if Assigned(Prestador) then
AValue := Prestador.InscrMunicipal.Value
else
AValue := '';
if AField.FieldName = svdNFsSelectedsPrestador_Numero.FieldName then
if Assigned(Prestador) then
AValue := Prestador.NumeroEnd.Value
else
AValue := '';
if AField.FieldName = svdNFsSelectedsPrestador_Rua.FieldName then
if Assigned(Prestador) then
AValue := Prestador.Endereco
else
AValue := '';
if AField.FieldName = svdNFsSelectedsPrestador_UF.FieldName then
if Assigned(Prestador) and
Assigned(Prestador.Cidade) and
Assigned(Prestador.Cidade.Estado) then
AValue := Prestador.Cidade.Estado.Uf
else
AValue := '';
if AField.FieldName = svdNFsSelectedsRPS.FieldName then
if Assigned(NFSe) then
AValue := NFSe.NumeroRPS
else
AValue := '';
if AField.FieldName = svdNFsSelectedsDescricao.FieldName then
AValue := Descricao;
if AField.FieldName = svdNFsSelectedsPercCOFINS.FieldName then
AValue := AliquotaCOFINS;
if AField.FieldName = svdNFsSelectedsPercCSLL.FieldName then
AValue := AliquotaCSLL;
if AField.FieldName = svdNFsSelectedsPercINSS.FieldName then
AValue := AliquotaINSS;
if AField.FieldName = svdNFsSelectedsPercIR.FieldName then
AValue := AliquotaIR;
if AField.FieldName = svdNFsSelectedsPercPIS.FieldName then
AValue := AliquotaPIS;
if AField.FieldName = svdNFsSelectedsPercISS.FieldName then
AValue := AliquotaISS;
if AField.FieldName = svdNFsSelectedsValorCOFINS.FieldName then
AValue := ValorCOFINS;
if AField.FieldName = svdNFsSelectedsValorCSLL.FieldName then
AValue := ValorCSLL;
if AField.FieldName = svdNFsSelectedsValorINSS.FieldName then
AValue := ValorINSS;
if AField.FieldName = svdNFsSelectedsValorIR.FieldName then
AValue := ValorIR;
if AField.FieldName = svdNFsSelectedsValorPIS.FieldName then
AValue := ValorPIS;
if AField.FieldName = svdNFsSelectedsValorISS.FieldName then
AValue := ValorISS;
if AField.FieldName = svdNFsSelectedsTotalDeducoes.FieldName then
if Assigned(Deducoes) then
AValue := Deducoes.Total
else
AValue := 0;
End;
end;
procedure TfrmNotas.svdNFsSetDataValue(Sender: TSnapCustomDataset;
AField: TField; AIndex: Integer; AValue: Variant);
begin
if Assigned(FNotas) and
Assigned(FNotas.Items[AIndex]) and
(AField.FieldName = svdNFsEscolhido.FieldName) then
FNotas.Items[AIndex].Escolhido := AField.AsBoolean;
end;
procedure TfrmNotas.svdNFsStatusGetText(Sender: TField; var Text: string;
DisplayText: Boolean);
begin
Text := StatusNFSeToStr(TStatusNFSe(Sender.AsInteger));
end;
end.