예제 #1
0
        /// <summary>
        /// Popula a grid com as alíquotas cadastradas na impressora fiscal
        /// </summary>
        private void Populate()
        {
            Wait.Show();

            IList<object[]> sourceVinculo = new List<object[]>();
            IList<object[]> sourceVinculado = new List<object[]>();

            IList<IAliquotaTributo> aliqTributos = new AliquotaTributo().Find<IAliquotaTributo>();

            IList<IAliquota> aliquotas = new Aliquota().Find<IAliquota>(new Where
            {
                { "ecf_aliquota.guidimpressora = @guid",
                    new Parameter
                    {
                        ParameterName = "@guid",
                        Value = Settings.ECF.ECFAtual.GUID.ToString()
                    }
                }
            });

            try
            {
                //Acessando a impressora fiscal para buscar quais as alíquotas cadastradas
                using (IConfiguracao conf = new Configuracao(Settings.ECF.ECFAtual.ModeloACBR, Settings.ECF.ECFAtual.Porta))
                {
                    var aliquotasECF = (from a in conf.LerAliquotas()
                                        select a);

                    foreach (ACBrFramework.ECF.Aliquota item in aliquotasECF)
                    {
                        IAliquota aliquota = aliquotas.FirstOrDefault(f => f.Indice.ToString().Trim().Equals(item.Indice));

                        if (item.Tipo.Equals("T"))
                        {
                            sourceVinculo.Add(new object[]
                            {
                                aliquota == null ? "" : aliquota.TributoAliquota.GUID.ToString(),
                                item.Indice,
                                string.Format("T{0:0000}", item.ValorAliquota.ToString("00.00")),
                            });
                        }
                        else
                        {
                            sourceVinculo.Add(new object[]
                            {
                                aliquota == null ? "" : aliquota.TributoAliquota.GUID.ToString(),
                                item.Indice,
                                string.Format("S{0:0000}", item.ValorAliquota.ToString("00.00")),
                            });
                        }
                    }

                    foreach (IAliquotaTributo aliqTrib in aliqTributos)
                    {
                        sourceVinculado.Add(new object[]
                        {
                            aliqTrib.GUID.ToString(),
                            aliqTrib.Valor.ToString()
                        });
                    }
                }

                //Popula a grid com as alíquotas do ECF e as que serão vinculadas
                confECF.PopulateGrid(sourceVinculo, sourceVinculado);
            }
            catch (Exception ex)
            {
                MessageBox.ShowError(ex, false);
            }
            Wait.Close();
        }