コード例 #1
0
ファイル: RegistroTest.cs プロジェクト: njmube/openposbr
        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();
        }
コード例 #2
0
        public override void AfterSave(bool updating)
        {
            base.AfterSave(updating);

            #region movimento vinculado

            if (updating)
            {
                foreach (IMovimento movimentoVinculado in MovimentosVinculados)
                {
                    ILanSK sk = new LanSK();
                    sk.GUIDSK = this.GUID;
                    sk.Pai = this.GUID;
                    sk.Filho = movimentoVinculado.GUID;
                    sk.TableHash = this.GetTableHash();
                    sk.Save();

                    this.Connection.ExecuteNonQuery("UPDATE fat_Lan SET Status = @status WHERE GUID = @guid", new[] {
                        new Parameter{
                            ParameterName = "@status",
                            GenericDbType= GenericDbType.Integer,
                            Value = (int)Enuns.Faturamento.Lancamento.Status.ImpressoCupom
                        },
                        new Parameter{
                            ParameterName = "@guid",
                            Value = movimentoVinculado.GUID
                        }
                    });
                }
            }
            #endregion

            #region Registro 04

            /*TODO: Conforme ir fazendo os ajustes na Venda de Cupom fiscal será necessários informar os valroes corretos para os registros 04 e 05;
             * Ajustes no Registro 04:
             * CCF, COO, ValorSubtotal, ValorDescontoSubtotal, TipoDescontoSubtotal, ValorAcrescimoSubtotal, TipoAcrescimoSubtotal, Cancelado
             * ValorCancelamentoAcrescimoSubtotal, OrdemDescontoAcrescimo
             * Ajustes no Registro 05:
             * COO, CCF, CodigoTotalalizadorParcial, Cancelado, QuantidadeCancelada, ValorCancelado, ValorCancelamentoAcrescimo,QuantidadeCasaDecimal
             * QuantidadeCasaDecimalVlrUnit
            */

            IRegistro04 reg04 = new Registro04();

            //Gravar os dados da venda de cupom fiscal no registro 04
            //-------------------------------------------------------------------------
            // Procurar a impressora pelo PDV
            //-------------------------------------------------------------------------

            IList<IImpressora> impressoras = new Impressora().Find<IImpressora>(new Where {
                {"ecf_Impressora.GUIDPDV = @p1", new Parameter{
                    ParameterName = "@p1",
                    Value = AbreFechaCaixa.Caixa.PDV.GUID
                }}
            });

            if (impressoras.Count > 0 && !updating)
            {
                IImpressora ecfAtual = impressoras[0];

                reg04.Movimento = this;
                reg04.MFAdicional = ecfAtual.MFAdicional;
                reg04.ModeloECF = Unimake.Convert.ToString(ecfAtual.ModeloACBR);
                reg04.NumeroUsuario = Unimake.Convert.ToInt(ecfAtual.NumeroUsuario);
                reg04.CCF = this.CCF;
                reg04.COO = this.COO;
                reg04.DataEmissao = this.DataEmissao;
                reg04.ValorSubtotal = this.ValorTotalBruto;
                reg04.ValorDescontoSubtotal = 0;
                reg04.TipoDescontoSubtotal = IndicadorTipo.Monetario;
                reg04.ValorAcrescimoSubtotal = 0;
                reg04.TipoAcrescimoSubtotal = IndicadorTipo.Monetario;
                reg04.ValorTotalLiquido = this.ValorTotalLiquido;
                reg04.Cancelado = IndicadorCancelamento.Nao;
                reg04.ValorCancelamentoAcrescimoSubtotal = 0;
                reg04.OrdemDescontoAcrescimo = IndicadorOrdem.Desconto;
                reg04.NumeroFabricacao = ecfAtual.Serie;

                if (DadoPessoa != null)
                {
                    reg04.NomeAdquirente = this.DadoPessoa.NomeFantasia.Substring(0, 40);

                    if (this.DadoPessoa.Cliente.FisicaJuridica == Enuns.Cadastro.Pessoa.FisicaJuridica.Fisica)
                        reg04.CPFCNPJAdquirente = Unimake.Utilities.OnlyNumbers(this.DadoPessoa.Cliente.Fisica.CPF.ToString(), "./-").ToString();
                    else
                        reg04.CPFCNPJAdquirente = Unimake.Utilities.OnlyNumbers(this.DadoPessoa.Cliente.Juridica.CNPJ.ToString(), "./-").ToString();
                }

                int numeroItemECF = 0;

                foreach (IItem item in this.Itens)
                {
                    numeroItemECF += 1;
                    //Gravar os dados dos itens do cupom fiscal no registro 05
                    IRegistro05 reg05 = new Registro05();
                    reg05.ItemMovimentado = item;
                    reg05.NumeroFabricacao = ecfAtual.Identificacao;
                    reg05.MFAdicional = ecfAtual.MFAdicional;
                    reg05.ModeloECF = Unimake.Convert.ToString(ecfAtual.ModeloACBR);
                    reg05.NumeroUsuario = reg04.NumeroUsuario;
                    reg05.COO = reg04.COO;
                    reg05.CCF = reg04.CCF;
                    reg05.NumeroItem = numeroItemECF;
                    reg05.CodigoTotalalizadorParcial = "I01";
                    reg05.SituacaoTributaria = item.SituacaoTributaria;

                    if (Unimake.Convert.ToEnum<Enuns.Faturamento.Lancamento.Movimento.Item.Status>(item.Status) == Enuns.Faturamento.Lancamento.Movimento.Item.Status.Cancelado)
                    {
                        reg05.Cancelado = "S";
                        reg05.QuantidadeCancelada = item.Quantidade;
                        reg05.ValorCancelado = item.ValorTotalBruto;
                    }
                    else
                    {
                        reg05.Cancelado = "N";
                        reg05.QuantidadeCancelada = 0;
                        reg05.ValorCancelado = 0;
                    }

                    Model.Cadastro.Item.Produto.IProduto produto = item.ItemMovimentado as Model.Cadastro.Item.Produto.IProduto;
                    reg05.ValorCancelamentoAcrescimo = 0;
                    reg05.IndicadorTruncamento = produto.IndicadorTruncamento;
                    reg05.IndicadorProducao = produto.IndicadorProducao;
                    reg05.QuantidadeCasaDecimal = 2;
                    reg05.QuantidadeCasaDecimalVlrUnit = 2;
                    reg05.NumeroFabricacao = reg04.NumeroFabricacao;
                    reg04.Registros05.Add(reg05);

                    reg04.Save();
                }
            }
            #endregion
        }
コード例 #3
0
ファイル: MovimentoBase.cs プロジェクト: njmube/openposbr
 /// <summary>
 /// Instancia este objeto e apenas inicia as variáveis, não carrega nenhum dado da base de dados
 /// </summary>
 public MovimentoBase()
     : base()
 {
     DataEmissao = DateTime.Now;
     DataHoraCadastro = DateTime.Now;
     DataHoraMovimento = DateTime.Now;
     Itens = new List<IItem>();
     Emitente = IndicadorProducao.Proprio;
     Situacao = SituacaoNotaFiscal.Normal;
     DadoPessoa = new DadoPessoa();
     Impressora = new Impressora();
     Registro04 = new Registro04();
     AnaliseCredito = new AnaliseCredito();
     Parcelas = new List<IParcela>();
     ItensEspeciais = new List<IEspecial>();
     CondicaoPagamento = new CondicaoPagamento();
     MovimentosVinculados = new List<IMovimento>();
     MovimentosMesclados = new List<IMovimento>();
     Ocorrencias = new List<Model.Faturamento.Lancamento.Movimento.Ocorrencia.IOcorrencia>();
     Baixa = new Data.Faturamento.Lancamento.Movimento.Baixa.Baixa();
     Serie = new Data.Faturamento.Cadastro.Serie();
 }