Ejemplo n.º 1
0
        public override void Gravar()
        {
            #region Tributo
            TributoTest tributoTest = new TributoTest();
            tributoTest.Gravar();

            ITributo tributo = new Tributo(tributoTest.GUID);

            IList<IAliquotaTributo> tributosAliquotas = new List<IAliquotaTributo>();
            tributosAliquotas.Add(tributo.Aliquotas[0]);

            IAliquotaTributo aliquotaTributo = new AliquotaTributo(tributosAliquotas[0].GUID);
            #endregion

            #region Impressora
            ImpressoraTest impressoraTest = new ImpressoraTest();
            impressoraTest.Gravar();

            IImpressora impressora = new Impressora(impressoraTest.GUID);
            #endregion

            IAliquota aliquota = new Aliquota();
            aliquota.TributoAliquota = aliquotaTributo;
            aliquota.Impressora = impressora;
            aliquota.Aliquota = 18.50;
            aliquota.Indice = "T18,50";
            GUID = aliquota.Save();
        }
Ejemplo n.º 2
0
        public override void Gravar()
        {
            #region PDV
            //Gravar o PDV de acordo com o nome do seu computador, então informe o nome do seu computador no campo Nome do teste
            PDVTest pdvTest = new PDVTest();
            pdvTest.Gravar();

            PDV pdv = new PDV(pdvTest.GUID);
            #endregion

            Impressora t = new Impressora();
            t.Descricao = new Random().NextString();
            t.Serie = "012345678901234567890123456789";
            t.Identificacao = "Daruma FS600";
            t.Tipo = Enuns.ECF.TipoImpressora.Fiscal;
            t.Marca = "DARUMA AUTOMAÇÃO";
            t.ModeloACBR = ACBrFramework.ECF.ModeloECF.Daruma;
            t.ModeloDocumentoFiscal = "2D";
            t.Versao = "Versao";
            t.MFD = true;
            t.MFAdicional = " ";
            t.NumeroUsuario = 1;
            t.PDV = pdv;
            t.Porta = "COM1";

            GUID = t.Save();
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Método utilizado para preencher esta instância com os dados do dataReader
        /// </summary>
        /// <param name="dataReader">DataReader com os dados que deverão ser passados para esta instância</param>
        public override void Populate(DataReader dataReader)
        {
            #region base
            base.Populate(dataReader);
            #endregion

            #region desta classe
            Impressora = new Impressora(dataReader.GetValue<string>("p_GUIDImpressora"));
            #endregion
        }
Ejemplo n.º 4
0
        public void HasHashModificationTest()
        {
            Gravar();
            IImpressora p1 = new Impressora(GUID);
            IImpressora p2 = new Impressora(GUID);

            //alterar a forma 2, e comparar se houve modificação do HASH
            p2.Descricao = "Teste de Modificação do HASH";
            Assert.AreNotEqual(p1.RecordHash, p2.RecordHash);
            Assert.IsTrue(p2.HasHashModification);

            //alterar a descrição, tem que ficar igual
            p2.Descricao = p1.Descricao;
            Assert.AreEqual(p1.RecordHash, p2.RecordHash);
        }
Ejemplo n.º 5
0
 public override void Popular()
 {
     Impressora t = new Impressora(GUID);
     DumpElement(t);
 }
Ejemplo n.º 6
0
 public override void Editar()
 {
     Impressora t = new Impressora(GUID);
     t.Descricao = "Teste de Impressora editado";
     t.Save();
 }
Ejemplo n.º 7
0
 /// <summary>
 /// Método para salvar a impressora 
 /// </summary>
 /// <param name="pdv">PDV a que esta impressora está conectada</param>
 /// <param name="modelo">modelo de impressora </param>
 /// <param name="porta">porta  a que a impressora está conectada</param>
 private static IImpressora SaveImpressora(IPDV pdv, ModeloECF modelo = ModeloECF.Nenhum, string porta = null)
 {
     IImpressora result = null;
     if (Unimake.Convert.ToBoolean(Settings.Setting.EmissaoConsumidorFinalNFCe))
     {
         //Salva uma impressora para o terminal
         result = new Impressora();
         result.Descricao = Settings.MachineName; ;
         result.Serie = "99999999999999999";
         result.Identificacao = "99999999999999999";
         result.Tipo = Enuns.ECF.TipoImpressora.NaoFiscal;
         result.Marca = "NaoFiscal";
         result.ModeloACBR = ModeloECF.NaoFiscal;
         //TODO: Caso  for utilizar o sistema com algum tipo de impressora diferente de ecf implementar a verificação
         result.ModeloDocumentoFiscal = OpenPOS.Arquivo.Sintegra.ModeloDocumento.Dois2D.ToString();
         result.Versao = "99999999999999999";
         result.MFD = false;
         result.MFAdicional = "N";
         result.NumeroUsuario = 0;
         result.PDV = pdv;
         result.Porta = "USB";
         result.Save();
     }
     else
         using (IECF ecf = ReturnECF(modelo, porta))
         {
             result = new Impressora();
             result.Descricao = Settings.MachineName; ;
             result.Serie = ecf.NumeroSerie;
             result.Identificacao = ecf.NumeroSerie.ToString();
             result.Tipo = ecf.TipoImpressora;
             result.Marca = ecf.Modelo.ToString();
             result.ModeloACBR = ecf.Modelo;
             //TODO: Caso  for utilizar o sistema com algum tipo de impressora diferente de ecf implementar a verificação
             result.ModeloDocumentoFiscal = OpenPOS.Arquivo.Sintegra.ModeloDocumento.Dois2D.ToString();
             result.Versao = ecf.NumeroVersao;
             result.MFD = ecf.IsMFD;
             result.MFAdicional = ecf.MFAdicional;
             result.NumeroUsuario = Unimake.Convert.ToInt(ecf.NumeroECF);
             result.PDV = pdv;
             result.Porta = ecf.Dipositivo.Porta;
             result.Save();
         }
     return result;
 }
Ejemplo n.º 8
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
        }
Ejemplo n.º 9
0
        /// <summary>
        /// Método utilizado para preencher esta instância com os dados do dataReader
        /// </summary>
        /// <param name="dataReader">DataReader com os dados que deverão ser passados para esta instância</param>
        public override void Populate(DataReader dataReader)
        {
            #region base
            base.Populate(dataReader);
            #endregion

            #region desta classe
            TipoECF = dataReader.GetValue<string>("p_TipoECF");
            MarcaECF = dataReader.GetValue<string>("p_MarcaECF");
            VersaoSB = dataReader.GetValue<string>("p_VersaoSB");
            DataInstalacaoSB = dataReader.GetValue<DateTime>("p_DataInstSB");
            HoraInstalacaoSB = dataReader.GetValue<DateTime>("p_HoraInstSB");
            NumeroSequenciaECF = dataReader.GetValue<int>("p_NumSeqECF");
            CNPJEmitente = dataReader.GetValue<string>("p_CNPJEmitente");
            IEEmitente = dataReader.GetValue<string>("p_InscEstEmitente");
            CNPJSoftwareHouse = dataReader.GetValue<string>("p_CNPJSoftHouse");
            IESoftwareHouse = dataReader.GetValue<string>("p_InscEstSoftHouse");
            InscrMunicipalSoftwareHouse = dataReader.GetValue<string>("p_InscMunSoftHouse");
            DenominacaoSoftwareHouse = dataReader.GetValue<string>("p_DenominacaoSoftHouse");
            NomePAFECF = dataReader.GetValue<string>("p_NomePAFECF");
            VersaoPAFECF = dataReader.GetValue<string>("p_VersaoPAFECF");
            CodigoMD5PAFECF = dataReader.GetValue<string>("p_CodMD5PAFECF");
            DataCriacao = dataReader.GetValue<DateTime>("p_DataCriacao");
            VersaoEspecReqPAFECF = dataReader.GetValue<string>("p_VersaoEspReqPAFECF");
            Impressora = new Impressora(dataReader.GetValue<string>("p_GUIDImpressora"));
            #endregion

            #region Registros 02
            Lazy.Add<IList<IRegistro02>>("RegistrosR2", () =>
            {
                return new Registro02().Find<IRegistro02, IRegistro01>(new Where {
                    {"GUIDRegistro01 = @p1",
                        new Parameter{
                            ParameterName = "@p1",
                            Value = GUID
                        }
                    }
                }, this);
            });
            #endregion

            #region Registros 04
            Lazy.Add<IList<IRegistro04>>("RegistrosR4", () =>
            {
                return new Registro04().Find<IRegistro04, IRegistro01>(new Where {
                    {"GUIDRegistro01 = @p1",
                        new Parameter{
                            ParameterName = "@p1",
                            Value = GUID
                        }
                    }
                }, this);
            });
            #endregion

            #region Registros 06
            Lazy.Add<IList<IRegistro06>>("RegistrosR6", () =>
            {
                return new Registro06().Find<IRegistro06, IRegistro01>(new Where {
                    {"GUIDRegistro01 = @p1",
                        new Parameter{
                            ParameterName = "@p1",
                            Value = GUID
                        }
                    }
                }, this);
            });
            #endregion
        }
Ejemplo n.º 10
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();
        }
Ejemplo n.º 11
0
        public override bool PerformStep()
        {
            bool result = base.PerformStep();

            if(result)
            {
                if(!pnlECFAdicionais.Visible)
                {

                    //-------------------------------------------------------------------------
                    // Tentar recuperar as informações da ECF
                    //-------------------------------------------------------------------------
                    IECF ecf = null;
                    try
                    {
                        IImpressora impressora = null;
                        ecf = chkECFAutomaticamente.Checked ? new ECF.ECF() : new ECF.ECF(Unimake.Convert.ToEnum<ModeloECF>(cboECFModelo.Text), cboECFPorta.Text);

                        CurrentConfig.ECFNumeroSerieECF = ecf.NumeroSerie;
                        helpPDV.Text = String.Format("Será criado automaticamente um PDV com o nome {0} para a impressora {1}.",
                            Settings.MachineName, ecf.NumeroSerie);

                        impressora = new Impressora();
                        impressora.Descricao = Settings.MachineName;
                        impressora.Serie = ecf.NumeroSerie;
                        impressora.Identificacao = ecf.NumeroSerie.ToString();
                        impressora.Tipo = ecf.TipoImpressora;
                        impressora.Marca = ecf.Modelo.ToString();
                        impressora.ModeloACBR = ecf.Modelo;
                        impressora.ModeloDocumentoFiscal = Arquivo.Sintegra.ModeloDocumento.Dois2D.ToString();
                        impressora.Versao = ecf.NumeroVersao;
                        impressora.MFD = ecf.IsMFD;
                        impressora.MFAdicional = ecf.MFAdicional;
                        impressora.NumeroUsuario = Unimake.Convert.ToInt(ecf.NumeroECF);
                        impressora.PDV = new PDV
                        {
                            Nome = Settings.MachineName,
                            Observacao = Settings.MachineName
                        };
                        impressora.Porta = ecf.Dipositivo.Porta;
                        txtSerie.Text = ecf.NumeroSerie;

                        CurrentConfig.Impressora = impressora;
                    }
                    catch(Exception ex)
                    {
                        MessageBox.ShowError(ex, "Não foi possível identificar um equipamento ECF instalado neste PDV.\r\nPor favor, verifique se existe algum equipamento ECF instalado.\r\nO OpenPOS não irá funcionar sem um equipamento instalado corretamente.\r\n");
                        return false;
                    }
                    finally
                    {
                        if(ecf != null)
                            ecf.Dispose();

                        ecf = null;
                    }
                }

                if(!pnlECFAdicionais.Visible)
                {
                    pnlECFAdicionais.Visible = true;
                    cboECFModelo.Enabled = false;
                    cboECFPorta.Enabled = false;
                    MessageBox.Show(String.Format("A impressora {0} foi encontrada na porta {1}.\r\n\tClique em continuar para seguir o próximo passo da instalação.", cboECFModelo.Text, cboECFPorta.Text));
                    return false;
                }

                CurrentConfig.Impressora.PDV.NumeroCaixa = txtNumeroCaixa.Text;
                CurrentConfig.ECFMensagemRodape = txtMensagemRodape.Text;
            }

            return result;
        }
Ejemplo n.º 12
0
        /// <summary>
        /// Método utilizado para preencher esta instância com os dados do dataReader
        /// </summary>
        /// <param name="dataReader">DataReader com os dados que deverão ser passados para esta instância</param>
        public override void Populate(DataReader dataReader)
        {
            #region base
            base.Populate(dataReader);
            #endregion

            #region desta classe
            DataEmissao = dataReader.GetValue<DateTime>("p_DataEmissao");
            DataHoraMovimento = dataReader.GetValue<DateTime>("p_DataHoraMovimento");
            BaseCalculoICMS = dataReader.GetDouble("p_BaseCalculoICMS");
            ValorICMS = dataReader.GetDouble("p_ValorICMS");
            ValorIsentaNaoTributado = dataReader.GetDouble("p_VlrIsentaNaoTrib");
            ValorOutra = dataReader.GetDouble("p_VlrOutra");
            AliquotaICMS = dataReader.GetDouble("p_AliquotaICMS");
            Modelo = dataReader.GetString("p_Modelo");
            Serie = new Data.Faturamento.Cadastro.Serie(dataReader.GetString("p_GUIDSerie"));
            CFOP = new CFOP("p_GUIDCFOP");
            Emitente = dataReader.GetString("p_Emitente");
            ValorBaseCalculo = dataReader.GetDouble("p_VlrBaseCalc");
            Situacao = dataReader.GetString("p_Situacao");
            ValorICMSRetido = dataReader.GetDouble("p_ValorICMSRetido");
            ValorDespesasAcessorias = dataReader.GetDouble("p_VlrDespAcess");
            CodigoAntecipacao = dataReader.GetEnum<CodigoAntecipacao>("p_CodigoAntecipacao");
            BaseCalculoICMSST = dataReader.GetDouble("p_BaseCalculoICMSST");
            DadoPessoa = new Data.Faturamento.Lancamento.Movimento.DadoPessoa.DadoPessoa(dataReader.GetValue<string>("p_GUIDLan"));
            Subserie = dataReader.GetString("p_Subserie");
            Temp = dataReader.GetBoolean("p_Temp");
            Impressora = new Impressora(dataReader.GetString("p_Impressora"));
            TabelaPreco = Abstract.Cadastro.TabelaPreco.TabelaPrecoBase.Create(dataReader.GetString("p_GUIDTabelaPreco"));
            COO = dataReader.GetInt("p_COO");
            CondicaoPagamento = new Data.Cadastro.Financeiro.CondicaoPagamento.CondicaoPagamento(dataReader.GetString("p_GUIDCondicaoPagamento"));
            Replicado = dataReader.GetBoolean("p_Replicado");
            Transportador = new Transportador((GUID)dataReader.GetValue<string>("p_GUIDTransportador"));
            QuantidadeVolume = dataReader.GetDouble("p_QuantidadeVolume");
            #endregion

            #region Registro04
            //    Registro04 = new Registro04(this);
            #endregion

            #region read only
            //ValorTotalBruto = dataReader.GetValue<double>("p_VlrTotalBruto");
            //ValorTotalLiquido = dataReader.GetValue<double>("p_VlrTotalLiquido");
            #endregion

            #region Itens Especiais
            IList<IRateio> rateios = new Rateio().Find<IRateio, IMovimento>("fat_LanMovItem.GUIDLanMov", GUID, this);

            ItensEspeciais = (from r in rateios
                              group r by r.Ordem into g
                              let rateio = g.FirstOrDefault()
                              select new Especial
                              {
                                  ItemEspecial = rateio.ItemEspecial.ItemEspecial,
                                  Valor = g.Sum(s => s.Valor),
                                  Percentual = rateio.ItemEspecial.Percentual > 0 ? rateio.ItemEspecial.Percentual : 0,
                                  Ordem = rateio.Ordem
                              }).ToList<IEspecial>();

            #endregion

            #region Analise de crédito
            AnaliseCredito = new AnaliseCredito(this);
            #endregion

            #region Parcelas
            DataReader dr = Connection.ExecuteReader(@"
                            SELECT GUID
                              FROM fat_Lan
                             WHERE GUID IN (
                                       SELECT GUIDLanFilho
                                         FROM fat_LanSK
                                        WHERE GUIDLanPai = @pai
                                              AND
                                              TableHash = @th
                                   );",
                                                    new[] {
                                                        new Parameter {
                                                            ParameterName = "@pai",
                                                            Value = GUID
                                                        },
                                                        new Parameter{
                                                            ParameterName = "@th",
                                                            Value = Unimake.Utilities.GetTableHash(typeof(IPagarReceber))
                                                        }
                                                    });

            Parcelas = new List<IParcela>();

            while(dr.Read())
            {
                Parcelas.Add(Data.Abstract.Financeiro.Lancamento.PagarReceberBase.Create(dr.GetString(0)) as IParcela);
            }
            #endregion

            #region Itens
            Itens = ItemBase.Create(this).Find<IItem, IMovimento>(new Where()
            {
                {"fat_LanMovItem.GUIDLanMov", GUID.ToString() }
            }, this);
            #endregion

            #region Ocorrências
            Ocorrencias = new Data.Faturamento.Lancamento.Movimento.Ocorrencia.Ocorrencia().Find<Model.Faturamento.Lancamento.Movimento.Ocorrencia.IOcorrencia, IMovimento>(new Where
            {
                {
                    "fat_LanMovOcorrencia.GUIDLanMov", GUID.ToString()
                }
            }, this);
            #endregion

            #region Baixas
            //Todo Luciano: Para implementar múltiplas baixas basta tratar as baixas como uma coleção
            IList<IBaixa> baixas = new Data.Faturamento.Lancamento.Movimento.Baixa.Baixa().Find<IBaixa>(new Where()
            {
                { "fat_LanMovBx.GUIDLan", GUID.ToString() }
            });

            if(baixas.Count > 0)
                Baixa = baixas.FirstOrDefault();

            #endregion
        }
Ejemplo n.º 13
0
 /// <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();
 }
Ejemplo n.º 14
0
        /// <summary>
        /// Método utilizado para preencher esta instância com os dados do dataReader
        /// </summary>
        /// <param name="dataReader">DataReader com os dados que deverão ser passados para esta instância</param>
        public override void Populate(DataReader dataReader)
        {
            #region base
            base.Populate(dataReader);
            #endregion

            #region desta classe
            Impressora = new Impressora(dataReader.GetValue<string>("p_GUIDImpressora"));
            Indice = dataReader.GetValue<string>("p_Indice");
            Descricao = dataReader.GetString("p_Descricao");
            Tipo = (Enuns.Faturamento.Lancamento.Tipo)dataReader.GetInt("p_Tipo");
            #endregion
        }
Ejemplo n.º 15
0
        /// <summary>
        /// Método utilizado para preencher esta instância com os dados do dataReader
        /// </summary>
        /// <param name="dataReader">DataReader com os dados que deverão ser passados para esta instância</param>
        public override void Populate(DataReader dataReader)
        {
            #region base
            base.Populate(dataReader);
            #endregion

            #region desta classe
            Impressora = new Impressora(dataReader.GetValue<string>("p_GUIDImpressora"));
            FormaPagamento = new FormaPagamento(dataReader.GetValue<string>("p_GUIDFormaPagto"));
            Indice = dataReader.GetValue<int>("p_Indice");
            #endregion
        }