private void GeraRegistros02(DateTime dataIni, DateTime dataFim)
        {
            IRegistro01 reg01 = new Registro01
            {
                MarcaECF = "Teste",
                VersaoSB = "1.0",
                DataInstalacaoSB = DateTime.Today,
                HoraInstalacaoSB = DateTime.Now,
                NumeroSequenciaECF = 1,
                CodigoMD5PAFECF = Cryptography.Files.MD5.GetMD5Hash(Settings.PAF.FilesFullPath),
                DataCriacao = DateTime.Today
            };

            int i = 10000;
            IList<IFormaPagamento> formas = new Data.Cadastro.FormaPagamento().Find<IFormaPagamento>();

            for(DateTime d = dataIni; d < dataFim; d = d.AddDays(1))
            {
                IRegistro02 reg02 = new Registro02
                {
                    COO = new Random().Next(i++, 30000),
                    CRO = new Random().Next(i++, 30000),
                    CRZ = new Random().Next(i++, 30000),
                    DataHoraCadastro = d,
                    DataHoraEmissao = d,
                    DataMovimento = d,
                    DescricaoISSQN = "",
                    GrandeTotal = new Random().NextDouble(1000, 10000),
                    VendaBrutaDiaria = new Random().NextDouble(1000, 10000),
                    MeiosPagamentos = new List<IRegistro02MeiosPagto> {
                        new Registro02MeiosPagto{
                            FormaPagamento = formas[new Random().Next(0,formas.Count)].Descricao,
                            Indice =0,
                            ValorAcumulado = new Random().NextDouble(1000, 10000)
                        },
                        new Registro02MeiosPagto{
                            FormaPagamento = formas[new Random().Next(0,formas.Count)].Descricao,
                            Indice =0,
                            ValorAcumulado = new Random().NextDouble(1000, 10000)
                        },
                        new Registro02MeiosPagto{
                            FormaPagamento = formas[new Random().Next(0,formas.Count)].Descricao,
                            Indice =0,
                            ValorAcumulado = new Random().NextDouble(1000, 10000)
                        }
                    },
                    Registros03 = new List<IRegistro03> {
                        new Registro03{
                            TotalizadorParcial = "T18,00",
                            ValorAcumulado = new Random().NextDouble(1000,10000)
                        },
                        new Registro03{
                            TotalizadorParcial = "T07,00",
                            ValorAcumulado = new Random().NextDouble(1000,10000)
                        },
                        new Registro03{
                            TotalizadorParcial = "T12,00",
                            ValorAcumulado = new Random().NextDouble(1000,10000)
                        }
                    }
                };

                reg01.RegistrosR2.Add(reg02);
            }

            reg01.Save();
        }
Beispiel #2
0
        /// <summary>
        /// 
        /// </summary>
        private void CriaRegistro02()
        {
            #region Registro R01
            IRegistro01 registro01 = Registro01.Create(Settings.ECF.ECFAtual);

            if (registro01.IsNullOrEmpty())
            {
                //Tornar os campos Inscrição Estadual e Inscrição Municipal com 14 posições, pois temos mandar a string com essa quantidade
                string inscEst = Unimake.Convert.ToString(Unimake.Utilities.OnlyNumbers(Settings.SoftwareHouse.IE, "-,.\\/"));
                string inscMun = Unimake.Convert.ToString(Unimake.Utilities.OnlyNumbers(Settings.SoftwareHouse.IM, "-,.\\/"));

                inscEst = inscEst.PadRight(14, ' ').Substring(0, 14);
                inscMun = inscMun.PadRight(14, ' ').Substring(0, 14);

                registro01 = new Registro01();
                registro01.Impressora = Settings.ECF.ECFAtual;
                registro01.TipoECF = TipoECF.ECFIF.ToString();
                registro01.MarcaECF = ACBrECF.SubModeloECF;
                registro01.VersaoSB = ACBrECF.NumVersao;
                registro01.DataInstalacaoSB = ACBrECF.DataHoraSB.Date;
                registro01.HoraInstalacaoSB = ACBrECF.DataHoraSB;
                registro01.NumeroSequenciaECF = Unimake.Convert.ToInt(ACBrECF.NumECF);
                registro01.CNPJEmitente = Utilities.OnlyNumbers(ACBrECF.CNPJ, "-.,/").ToString();
                registro01.IEEmitente = Utilities.OnlyNumbers(ACBrECF.IE, ".-\\/").ToString();
                registro01.CNPJSoftwareHouse = System.Convert.ToString(Unimake.Utilities.OnlyNumbers(Settings.SoftwareHouse.CNPJ, "./-"));
                registro01.IESoftwareHouse = inscEst;
                registro01.InscrMunicipalSoftwareHouse = inscMun;
                registro01.DenominacaoSoftwareHouse = Settings.SoftwareHouse.Nome;
                registro01.NomePAFECF = Settings.SoftwareHouse.NomeApp;
                registro01.VersaoPAFECF = Settings.SoftwareHouse.Versao;
                registro01.CodigoMD5PAFECF = Cryptography.Files.MD5.GetMD5Hash(Settings.PAF.FilesFullPath);
                registro01.DataCriacao = DateTime.Today;
                registro01.VersaoEspecReqPAFECF = Settings.SoftwareHouse.VersaoER;
                registro01.Save();
            }
            #endregion

            #region Registro R02 - Relações da Redução Z
            IRegistro02 registro02 = new Registro02();
            registro02.Parent = registro01;
            registro02.CRZ = DadosReducaoZ.CRZ;
            registro02.COO = DadosReducaoZ.COO;
            registro02.CRO = DadosReducaoZ.CRO;
            registro02.CCF = DadosReducaoZ.CCF;
            registro02.DataMovimento = DadosReducaoZ.DataDoMovimento;
            registro02.DataHoraEmissao = DadosReducaoZ.DataHoraEmissao;
            registro02.VendaBrutaDiaria = Unimake.Convert.ToDouble(DadosReducaoZ.ValorVendaBruta);
            registro02.GrandeTotal = Unimake.Convert.ToDouble(DadosReducaoZ.ValorGrandeTotal);
            //TODO André: Por enquanto mandamos com o valor 0.00, pois não temos a parte tributária
            registro02.TotalPIS = 0;
            registro02.TotalCofins = 0;
            registro02.ParametroECFISSQN = true;

            #region Registro R02 - Meios de pagamentos

            foreach (FormaPagamento formaPagto in DadosReducaoZ.MeiosDePagamento)
            {
                if (formaPagto.Total > 0)
                {
                    registro02.MeiosPagamentos.Add(new Registro02MeiosPagto
                    {
                        Indice = Unimake.Convert.ToInt(formaPagto.Indice),
                        FormaPagamento = formaPagto.Descricao,
                        ValorAcumulado = Unimake.Convert.ToDouble(formaPagto.Total)
                    });
                }
            }
            #endregion

            #region Registro R03 - Detalhes da Redução Z
            foreach (ACBrFramework.ECF.Aliquota aliquotaICMS in DadosReducaoZ.ICMS.OrderBy(o => o.Indice))
            {
                //Gravar o total vendido pela alíquota de ICMS
                if (aliquotaICMS.Total > 0)
                {
                    registro02.Registros03.Add(new Registro03
                    {
                        TotalizadorParcial = string.Format("{0}T{1:0000}", aliquotaICMS.Indice.PadLeft(2, '0'),
                                                            aliquotaICMS.ValorAliquota.ToString("00.00", CultureInfo.InvariantCulture).Replace(".", "")),
                        ValorAcumulado = Unimake.Convert.ToDouble(aliquotaICMS.Total)
                    });
                }
            }

            foreach (ACBrFramework.ECF.Aliquota aliquotaISS in DadosReducaoZ.ISSQN.OrderBy(o => o.Indice))
            {
                //Gravar o total vendido pela alíquota de ISSQN
                if (aliquotaISS.Total > 0)
                {
                    registro02.Registros03.Add(new Registro03
                    {
                        TotalizadorParcial = string.Format("{0}S{1:0000}", aliquotaISS.Indice.PadLeft(2, '0'),
                                                            aliquotaISS.ValorAliquota.ToString("00.00", CultureInfo.InvariantCulture).Replace(".", "")),
                        ValorAcumulado = Unimake.Convert.ToDouble(aliquotaISS.Total)
                    });
                }
            }

            //Gravar o total vendido de Substituição Tributária de ICMS
            registro02.Registros03.Add(new Registro03
            {
                TotalizadorParcial = "F1",
                ValorAcumulado = Unimake.Convert.ToDouble(DadosReducaoZ.SubstituicaoTributariaICMS)
            });

            //Gravar o total vendido de Substituição Tributária de ISSQN
            registro02.Registros03.Add(new Registro03
            {
                TotalizadorParcial = "FS1",
                ValorAcumulado = Unimake.Convert.ToDouble(DadosReducaoZ.SubstituicaoTributariaISSQN)
            });

            //Gravar o total vendido de Isentos de ICMS
            registro02.Registros03.Add(new Registro03
            {
                TotalizadorParcial = "I1",
                ValorAcumulado = Unimake.Convert.ToDouble(DadosReducaoZ.IsentoICMS)
            });

            //Gravar o total vendido de Isentos de ISSQN
            registro02.Registros03.Add(new Registro03
            {
                TotalizadorParcial = "IS1",
                ValorAcumulado = Unimake.Convert.ToDouble(DadosReducaoZ.IsentoISSQN)
            });

            //Gravar o total vendido de Não Tributados pelo ICMS
            registro02.Registros03.Add(new Registro03
            {
                TotalizadorParcial = "N1",
                ValorAcumulado = Unimake.Convert.ToDouble(DadosReducaoZ.NaoTributadoICMS)
            });

            //Gravar o total vendido de Não Tributados pelo ISSQN
            registro02.Registros03.Add(new Registro03
            {
                TotalizadorParcial = "NS1",
                ValorAcumulado = Unimake.Convert.ToDouble(DadosReducaoZ.NaoTributadoISSQN)
            });

            //Gravar o total vendido de Operações Não Fiscais
            registro02.Registros03.Add(new Registro03
            {
                TotalizadorParcial = "OPNF",
                ValorAcumulado = Unimake.Convert.ToDouble(DadosReducaoZ.TotalOperacaoNaoFiscal)
            });

            //Gravar o total de Desconto de ICMS
            registro02.Registros03.Add(new Registro03
            {
                TotalizadorParcial = "DT",
                ValorAcumulado = Unimake.Convert.ToDouble(DadosReducaoZ.DescontoICMS)
            });

            //Gravar o total de Desconto de ISSQN
            registro02.Registros03.Add(new Registro03
            {
                TotalizadorParcial = "DS",
                ValorAcumulado = Unimake.Convert.ToDouble(DadosReducaoZ.DescontoISSQN)
            });

            //Gravar o total de Acréscimo de ICMS
            registro02.Registros03.Add(new Registro03
            {
                TotalizadorParcial = "AT",
                ValorAcumulado = Unimake.Convert.ToDouble(DadosReducaoZ.AcrescimoICMS)
            });

            //Gravar o total de Acréscimo de ISSQN
            registro02.Registros03.Add(new Registro03
            {
                TotalizadorParcial = "AS",
                ValorAcumulado = Unimake.Convert.ToDouble(DadosReducaoZ.AcrescimoISSQN)
            });

            //Gravar o total de cancelamento de ICMS
            registro02.Registros03.Add(new Registro03
            {
                TotalizadorParcial = "Can-T",
                ValorAcumulado = Unimake.Convert.ToDouble(DadosReducaoZ.CancelamentoICMS)
            });

            //Gravar o total de cancelamento de ISSQN
            registro02.Registros03.Add(new Registro03
            {
                TotalizadorParcial = "Can-S",
                ValorAcumulado = Unimake.Convert.ToDouble(DadosReducaoZ.CancelamentoISSQN)
            });
            #endregion

            registro02.Save();
            #endregion

            #region Mapa resumo
            //Exporta os dados do mapa resumo de acordo com as informações da Redução Z gerada
            Export export = new Export();
            export.Where = new Where
            {
                { "arq_Registro02.GUID = @guid",
                    new Parameter
                    {
                        ParameterName = "@guid",
                        Value = registro02.GUID
                    }
                }
            };
            export.Execute("MapaResumo");
            #endregion
        }
Beispiel #3
0
        private void GerarBlocoC()
        {
            #region C400
            IList<IRegistro01> registros01 = new Registro02().Find<IRegistro01>(new Where {
                        {"DataCriacao Between @p1 AND @p2",
                            new[]{
                                    new Parameter {
                                        ParameterName = "@p1",
                                        GenericDbType = GenericDbType.DateTime,
                                        Value = ACBrSPED.DT_INI
                                    },
                                    new Parameter {
                                        ParameterName = "@p2",
                                        GenericDbType = GenericDbType.DateTime,
                                        Value = ACBrSPED.DT_FIN
                                    }
                                }
                        }
                    });

            //-------------------------------------------------------------------------
            // Unir todos os registros 02 em uma única variável
            //-------------------------------------------------------------------------
            var registros02 = from x in registros01
                              from r in x.RegistrosR2
                              select new
                              {
                                  Impressora = x.Impressora,
                                  CRZ = r.CRZ,
                                  COO = r.COO,
                                  CRO = r.CRO,
                                  DataMovimento = r.DataMovimento,
                                  DataHoraEmissao = r.DataHoraEmissao,
                                  VendaBrutaDiaria = r.VendaBrutaDiaria,
                                  Registros03 = r.Registros03,
                                  MeiosPagamentos = r.MeiosPagamentos,
                                  GrandeTotal = r.GrandeTotal,
                                  TotalPIS = r.TotalPIS,
                                  TotalCofins = r.TotalCofins,
                                  ParametroECFISSQN = r.ParametroECFISSQN
                              };

            var c400s = (from c in Cupons
                         group c by c.Impressora.GUID into g
                         select new
                         {
                             impressora = g.First().Impressora,
                             data = Unimake.Convert.ToDateTime(g.First().DataHoraMovimento.ToShortDateString()),
                             codigo = "2D",
                             modelo = g.First().Impressora.ModeloDocumentoFiscal,
                             serie = g.First().Impressora.Serie,
                             caixa = g.First().Impressora.PDV.NumeroCaixa
                         });

            foreach(var c400 in c400s)
            {
                ACBrFramework.Sped.RegistroC400 regC400 = new ACBrFramework.Sped.RegistroC400
                {
                    COD_MOD = c400.codigo,
                    ECF_MOD = c400.modelo,
                    ECF_FAB = c400.serie,
                    ECF_CX = c400.caixa
                };

                ACBrSPED.Bloco_C.RegistroC001.RegistroC400.Add(regC400);

                #region 405 e filhos
                #region 405
                var c405s = (from c in registros02
                             where c.Impressora.GUID == c400.impressora.GUID &&
                             c.DataMovimento.IsEqual(c400.data)
                             select new
                             {
                                 data = c.DataMovimento,
                                 cro = c.CRO,
                                 crz = c.CRZ,
                                 coo = c.COO,
                                 vendaBruta = (decimal)c.VendaBrutaDiaria,
                                 gt = (decimal)c.GrandeTotal
                             });

                foreach(var c405 in c405s)
                {
                    RegistroC405 regC405 = new RegistroC405
                    {
                        DT_DOC = c405.data,
                        CRO = c405.cro,
                        CRZ = c405.crz,
                        NUM_COO_FIN = c405.coo,
                        GT_FIN = c405.gt,
                        VL_BRT = c405.vendaBruta
                    };

                    regC400.RegistroC405.Add(regC405);

                    #region 410
                    var c410s = (from c in Cupons
                                 where c.Impressora.GUID == c400.impressora.GUID &&
                                  c.DataHoraMovimento.IsEqual(c400.data) &&
                                  (
                                   c.Itens.Sum(j => j.Tributos.Where(k => k.Aliquota.Parent.TipoTributo == Enuns.Cadastro.Tributo.TipoTributo.COFINS).Sum(k => k.VlrTributo)) > 0 ||
                                   c.Itens.Sum(j => j.Tributos.Where(k=> k.Aliquota.Parent.TipoTributo == Enuns.Cadastro.Tributo.TipoTributo.PIS).Sum(k=>k.VlrTributo)) > 0
                                  )
                                 from i in c.Itens
                                 select new
                                 {
                                     pis = (decimal)i.Tributos.Where(k => k.Aliquota.Parent.TipoTributo == Enuns.Cadastro.Tributo.TipoTributo.PIS).Sum(k => k.VlrTributo),
                                     cofins = (decimal)i.Tributos.Where(k => k.Aliquota.Parent.TipoTributo == Enuns.Cadastro.Tributo.TipoTributo.COFINS).Sum(k => k.VlrTributo)
                                 });

                    foreach(var c410 in c410s)
                    {
                        ACBrFramework.Sped.RegistroC410 regC410 = new ACBrFramework.Sped.RegistroC410();
                        regC410.VL_COFINS = c410.cofins;
                        regC410.VL_PIS = c410.pis;
                        regC405.RegistroC410.Add(regC410);
                    }
                    #endregion
                #endregion

                    #region 420
                    regC405.RegistroC420.AddRange((from r3 in
                                                       (
                                                           from r in registros02
                                                           where r.Impressora.GUID == c400.impressora.GUID &&
                                                                r.DataMovimento.IsEqual(c400.data)
                                                           from r3 in r.Registros03
                                                           select r3)
                                                   select new RegistroC420
                                                   {
                                                       COD_TOT_PAR = r3.TotalizadorParcial,
                                                       VLR_ACUM_TOT = (decimal)r3.ValorAcumulado
                                                   }).ToArray<RegistroC420>());
                    #endregion

                    #region 460
                    var c460s = (from c in Cupons
                                 where c.Impressora.GUID == c400.impressora.GUID &&
                                       c.DataHoraMovimento.IsEqual(c400.data)
                                 select new
                                 {
                                     COD_MOD = "2D",
                                     COD_SIT = c.Situacao.ToSPED(),
                                     NUM_DOC = c.COO.ToString(),
                                     DT_DOC = c.DataHoraMovimento,
                                     VL_DOC = (decimal)c.ValorTotalLiquido,
                                     VL_PIS = (decimal)c.Itens.Sum(p => p.Tributos.Where(k => k.Aliquota.Parent.TipoTributo == Enuns.Cadastro.Tributo.TipoTributo.PIS).Sum(k=>k.VlrTributo)),
                                     VL_COFINS = (decimal)c.Itens.Sum(p => p.Tributos.Where(k => k.Aliquota.Parent.TipoTributo == Enuns.Cadastro.Tributo.TipoTributo.COFINS).Sum(k => k.VlrTributo)),
                                     CPF_CNPJ = Utilities.OnlyNumbers(c.DadoPessoa.Cliente.GetCPFCNPJ(), "-.", false).ToString(),
                                     NOM_ADQ = c.DadoPessoa.Cliente.RazaoSocial,
                                     itens = c.Itens
                                 });

                    foreach(var c460 in c460s)
                    {
                        RegistroC460 regC460 = new RegistroC460();

                        regC460.COD_MOD = "2D";
                        regC460.COD_SIT = c460.COD_SIT;
                        regC460.NUM_DOC = c460.NUM_DOC;
                        regC460.DT_DOC = c460.DT_DOC;
                        regC460.VL_DOC = c460.VL_DOC;
                        regC460.VL_PIS = c460.VL_PIS;
                        regC460.VL_COFINS = c460.VL_COFINS;
                        regC460.CPF_CNPJ = c460.CPF_CNPJ;
                        regC460.NOM_ADQ = c460.NOM_ADQ;

                        regC405.RegistroC460.Add(regC460);

                        #region 470
                        //REGISTRO C470: ITENS DO DOCUMENTO FISCAL EMITIDO POR ECF (CÓDIGO 02 e 2D).
                        foreach(var c460Itens in c460.itens)
                        {
                            RegistroC470 regc470 = new RegistroC470();

                            regc470.COD_ITEM = c460Itens.ItemMovimentado.EGUID;
                            regc470.QTD = (decimal)c460Itens.Quantidade;
                            regc470.QTD_CANC = (decimal)c460Itens.Registro05.QuantidadeCancelada;
                            regc470.UNID = c460Itens.Unidade.Descricao;
                            regc470.VL_ITEM = (decimal)c460Itens.ValorTotalLiquido;
                            regc470.CST_ICMS = c460Itens.CSTCSOSNCodigos.Where(k=>k.CSTCSOSNCod.TipoTributo == Enuns.Cadastro.Tributo.TipoTributo.ICMS).FirstOrDefault().CSTCSOSNCod.Codigo;
                            regc470.CFOP = c460Itens.CFOP.CFOP;
                            regc470.ALIQ_ICMS = (decimal)c460Itens.Tributos.Where(k=>k.Aliquota.Parent.TipoTributo == Enuns.Cadastro.Tributo.TipoTributo.ICMS).FirstOrDefault().Aliquota.Valor;
                            regc470.VL_PIS = (decimal)c460Itens.Tributos.Where(k => k.Aliquota.Parent.TipoTributo == Enuns.Cadastro.Tributo.TipoTributo.PIS).FirstOrDefault().Aliquota.Valor;
                            regc470.VL_COFINS = (decimal)c460Itens.Tributos.Where(k => k.Aliquota.Parent.TipoTributo == Enuns.Cadastro.Tributo.TipoTributo.COFINS).FirstOrDefault().Aliquota.Valor;

                            regC460.RegistroC470.Add(regc470);
                        }
                        #endregion

                    #endregion

                    }

                    #region 490
                    regC405.RegistroC490.AddRange((
                        from x in
                            (from c in Cupons
                             from i in c.Itens
                             select i)
                        group x by new
                        {
                            cst = x.CSTCSOSNCodigos.Where(k=>k.CSTCSOSNCod.TipoTributo== TipoTributo.ICMS).FirstOrDefault().CSTCSOSNCod.Codigo,
                            cfop = x.CFOP.CFOP,
                            aliquota = x.Tributos.Where(k=>k.Aliquota.Parent.TipoTributo== TipoTributo.ICMS).FirstOrDefault().Aliquota.Valor
                        } into g
                        select new RegistroC490
                        {
                            CST_ICMS = g.Key.cst,
                            CFOP = g.Key.cfop,
                            ALIQ_ICMS = (decimal)g.Key.aliquota,
                            VL_OPR = (decimal)g.Sum(s => s.ValorTotalLiquido),
                            VL_BC_ICMS = (decimal)g.Sum(s => s.Tributos.Where(k => k.Aliquota.Parent.TipoTributo == Enuns.Cadastro.Tributo.TipoTributo.ICMS).Sum(k => k.VlrBaseCalculo)),
                            VL_ICMS = (decimal)g.Sum(s => s.Tributos.Where(k => k.Aliquota.Parent.TipoTributo == Enuns.Cadastro.Tributo.TipoTributo.PIS).Sum(k => k.VlrTributo))
                        }).ToArray<RegistroC490>());
                    #endregion
                }
                #endregion
            }
            #endregion
        }
Beispiel #4
0
        public override void Gravar()
        {
            #region Impressora
            //criar uma impressora
            ImpressoraTest imprTest = new ImpressoraTest();
            imprTest.Gravar();
            IImpressora impressora = new Impressora(imprTest.GUID);
            #endregion

            #region Regsitro 01
            Registro01 r01 = new Registro01();
            r01.Impressora = impressora;
            r01.TipoECF = "TipoECF";
            r01.MarcaECF = "MarcaECF";
            r01.VersaoSB = "VesaoSB";
            r01.DataInstalacaoSB = DateTime.Today;
            r01.HoraInstalacaoSB = DateTime.Now;
            r01.NumeroSequenciaECF = 1;
            r01.CNPJEmitente = "04141174000125";
            r01.IEEmitente = "1234567890";
            r01.CNPJSoftwareHouse = "04141174000125";
            r01.IESoftwareHouse = "InscEstSoftHouse";
            r01.InscrMunicipalSoftwareHouse = "InscMunSoftHouse";
            r01.DenominacaoSoftwareHouse = "DenominacaoSoftHouse";
            r01.NomePAFECF = "NomePAFECF";
            r01.VersaoPAFECF = "VersaoPAFECF";
            r01.CodigoMD5PAFECF = "CodMD5PAFECF";
            r01.DataCriacao = DateTime.Today;
            r01.VersaoEspecReqPAFECF = "VersaoEspReqPAFECF";
            #endregion

            #region Registro 02
            Registro02 r02 = new Registro02();

            r02.CRZ = 1;
            r02.COO = 1;
            r02.CRO = 1;
            r02.DataMovimento = DateTime.Today;
            r02.DataHoraEmissao = DateTime.Now;
            r02.VendaBrutaDiaria = new Random().NextDouble(500);
            r02.ParametroECFISSQN = false;

            r02.Registros03.Add(new Registro03()
            {
                ValorAcumulado = new Random().NextDouble(500),
                TotalizadorParcial = "T1800"
            });

            r02.Registros03.Add(new Registro03()
            {
                ValorAcumulado = new Random().NextDouble(500),
                TotalizadorParcial = "F1800"
            });

            r02.MeiosPagamentos.Add(new Registro02MeiosPagto
            {
                FormaPagamento = "Dinheiro",
                Indice = 1,
                ValorAcumulado = new Random().NextDouble(500),
            });

            r02.MeiosPagamentos.Add(new Registro02MeiosPagto
            {
                FormaPagamento = "Cartao",
                Indice = 2,
                ValorAcumulado = new Random().NextDouble(500),
            });

            r01.RegistrosR2.Add(r02);
            #endregion

            #region Registro 04
            #region Movimento
            PreVendaTest pvTest = new PreVendaTest();
            pvTest.Gravar();
            IMovimento movimento = new PreVenda(pvTest.GUID);
            #endregion

            Registro04 r04 = new Registro04();
            r04.Movimento = movimento;
            r04.NumeroFabricacao = "p_NumeroFabricacao";
            r04.MFAdicional = "p_MFAdicional";
            r04.ModeloECF = "p_ModeloECF";
            r04.NumeroUsuario = 1;
            r04.CCF = 1;
            r04.COO = 2;
            r04.DataEmissao = DateTime.Today;
            r04.ValorSubtotal = new Random().NextDouble(50);
            r04.ValorDescontoSubtotal = new Random().NextDouble(50);
            r04.TipoDescontoSubtotal = IndicadorTipo.Monetario;
            r04.ValorAcrescimoSubtotal = new Random().NextDouble(50);
            r04.TipoAcrescimoSubtotal = IndicadorTipo.Percentual;
            r04.ValorTotalLiquido = new Random().NextDouble(50);
            r04.Cancelado = IndicadorCancelamento.Nao;
            r04.ValorCancelamentoAcrescimoSubtotal = new Random().NextDouble(50);
            r04.OrdemDescontoAcrescimo = IndicadorOrdem.Desconto;
            r04.NomeAdquirente = "Marcelo";
            r04.CPFCNPJAdquirente = "25806756807";

            //adicionar registros05
            r04.Registros05.Add(new Registro05
            {
                ItemMovimentado = movimento.Itens[0],
                NumeroFabricacao = "NumeroFabricacao",
                MFAdicional = "MFAdicional",
                ModeloECF = "ModeloECF",
                NumeroUsuario = 1,
                COO = 1,
                CCF = 1,
                NumeroItem = 1,
                CodigoTotalalizadorParcial = "CodigoTotalalizadorParcial",
                Cancelado = IndicadorCancelamento.Nao,
                QuantidadeCancelada = new Random().NextDouble(50),
                ValorCancelado = new Random().NextDouble(50),
                ValorCancelamentoAcrescimo = new Random().NextDouble(50),
                IndicadorTruncamento = IndicadorTruncamento.Arredondamento,
                IndicadorProducao = IndicadorProducao.Proprio,
                QuantidadeCasaDecimal = 2,
                QuantidadeCasaDecimalVlrUnit = 2,
                SituacaoTributaria = SituacaoTributaria.Isento
            });

            r01.RegistrosR4.Add(r04);
            #endregion

            #region Registro 06
            Registro06 r06 = new Registro06();

            r06.NumeroFabricacao = "p_NumeroFabricacao";
            r06.MFAdicional = "p_MFAdicional";
            r06.ModeloECF = "p_ModeloECF";
            r06.NumeroUsuario = 1;
            r06.COO = 2;
            r06.GNF = 1;
            r06.GRC = 1;
            r06.Denominacao = SimboloDenominacao.ComprovanteCreditoDebito;
            r06.DataFinalEmissao = DateTime.Today;
            r06.HoraFinalEmissao = DateTime.Today;

            //adicionar registros07
            r06.Registros07.Add(new Registro07()
            {
                COO = 1,
                CCF = 1,
                GNF = 1,
                //TODO: Quando implementar a baixa, colocar neste teste
                //BaixaForma
                IndicadorEstorno = IndicadorEstorno.Nao,
                ValorEstornado = new Random().NextDouble(50)
            });

            r01.RegistrosR6.Add(r06);
            #endregion

            GUID = r01.Save();
        }
Beispiel #5
0
 /// <summary>
 /// Recompoe totalizador geral da impressora 
 /// </summary>
 /// <returns>verdadeiro ou false, se recompoe o totalizador</returns>
 public bool RecomporTotalizadorGeral(int CRZ, int CRO, decimal vendaBruta, DateTime dataHoraEmissaoReducaoZ)
 {
     double vendaBrutaDiaria = Convert.ToDouble(vendaBruta);
     IRegistro02 registro02 = new Registro02(dataHoraEmissaoReducaoZ);
     return (CRZ == registro02.CRZ && CRO == registro02.CRO && vendaBrutaDiaria == registro02.VendaBrutaDiaria);
 }