Example #1
0
        private Movimento indexarNotaFiscal(Boolean zerarReferencias = false)
        {
            Movimento notaFiscalAdd;
            int       sequencial = 0;
            var       cliForn    = lookUpCliFor1.CliFor;

            var modeloNf = lookUpModeloDocFiscal1.ModeloDocumentoFiscal;

            var formaPagto  = lookUpFormaPagamento1.FormaPagto;
            var centroCusto = lookUpCentroCusto1.CentroCusto;

            var filialNf          = lookUpMatrizFilial1.Filial;
            var tipoNF            = rdTipoNf.SelectedIndex == 0 ? TypeDirecao.Entrada : TypeDirecao.Saída;
            var numNF             = String.Format("{0:000000000}", ParseUtil.ToInt(txtNumNf.Text));
            var dtEmissaoNf       = dtEmissao.Value.Date;
            var dtEntradaNf       = dtEntrada.Value.Date;
            var situacaoDocumento = 1; //sempre na inclusao será "Documento Regular", caso seja lancamento de uma
                                       //nf já existente que foi cancelada, devera ser feito o cancelamento depois de salvar
            var indicadorFrete     = rdTipoFrete.SelectedIndex;
            var chaveAcessoNf      = txtChaveAcessoNf.Text;
            var valorFrete         = ParseUtil.ToDecimal(txtVlrFrete.Text);
            var valorDesconto      = ParseUtil.ToDecimal(txtVlrDesconto.Text);
            var valorBaseICMS      = 0M; //ParseUtil.ToDecimal(txtVlrBaseICMS.Text);
            var valorICMS          = 0M; // ParseUtil.ToDecimal(txtVlrICMS.Text);
            var valorBaseICMSST    = 0M; // ParseUtil.ToDecimal(txtVlrBaseICMSST.Text);
            var valorICMSST        = 0M; // ParseUtil.ToDecimal(txtVlrICMSST.Text);
            var valorSeguro        = ParseUtil.ToDecimal(txtVlrSeguro.Text);
            var valorDespesas      = ParseUtil.ToDecimal(txtVlrDespesas.Text);
            var valorTotalProdutos = 0M;
            var serie         = txtSerieNf.Text;
            var subserie      = txtSubSerie.Text;
            var observacoes   = memoEditObservacoes.Text;
            var localEstoque  = lookUpLocalEstoque1.LocalEstoque;
            var tipoMovimento = lookUpTipoMovimento1.TipoMovimento;

            notaFiscalAdd = new Movimento(cliForn, modeloNf, filialNf, tipoNF, numNF, dtEmissaoNf,
                                          dtEntradaNf, situacaoDocumento, chaveAcessoNf, valorFrete, valorDesconto, valorBaseICMS, valorICMS,
                                          valorBaseICMSST, valorICMSST, valorSeguro, valorDespesas, valorTotalProdutos, /*Total NF*/ 0M, serie, subserie);
            notaFiscalAdd.CliFor = cliForn;
            //notaFiscalAdd.SituacaoDocumentoFiscal = situacaoDocumento;
            notaFiscalAdd.ModeloDocumentoFiscal = modeloNf;

            foreach (var item in itensNota)
            {
                item.SequencialItem     = sequencial + 1;
                item.IndicadorMovFisica = 0;
                item.Produto            = item.Produto;
                item.Cfop           = item.Cfop;
                valorTotalProdutos += item.TotalItem;
                notaFiscalAdd.ItensMovimento.Add(item);

                foreach (var imposto in item.ImpostosItemMovimento)
                {
                    //somando os valores da base e imposto da capa
                    if (imposto.IdImposto == 2) //ICMS
                    {
                        notaFiscalAdd.ValorBaseICMS += imposto.BaseCalculo;
                        notaFiscalAdd.ValorICMS     += imposto.ValorImposto;
                    }
                    else if (imposto.IdImposto == 5) //ICMS-ST
                    {
                        notaFiscalAdd.ValorBaseICMSST += imposto.BaseCalculo;
                        notaFiscalAdd.ValorICMSST     += imposto.ValorImposto;
                    }
                    //zerando a referencia para impostos e situacao tributaria
                    imposto.TipoImposto        = imposto.TipoImposto;
                    imposto.SituacaoTributaria = imposto.SituacaoTributaria;
                }
                sequencial++;//incrementa o seq do item
            }
            var totalNF = (valorTotalProdutos + valorFrete + valorSeguro + valorDespesas) - valorDesconto;

            notaFiscalAdd.TotalProdutos    = notaFiscalAdd.CalculaTotalProdutos();
            notaFiscalAdd.TotalMovimento   = notaFiscalAdd.CalcularTotaisNF();
            notaFiscalAdd.IndicadorFrete   = indexModalidadeFrete(indicadorFrete);
            notaFiscalAdd.Observacoes      = observacoes;
            notaFiscalAdd.FormaPagamento   = formaPagto;
            notaFiscalAdd.IdFormaPagamento = formaPagto.IdFormaPagamento;
            notaFiscalAdd.CentroCusto      = centroCusto;
            notaFiscalAdd.IdCentroCusto    = centroCusto.IdCentroCusto;
            notaFiscalAdd.Usuario          = currentUser;
            notaFiscalAdd.IdUsuario        = currentUser.IdUsuario;
            notaFiscalAdd.GerarParcelas(notaFiscalAdd);
            notaFiscalAdd.EmpresaFilial   = filialNf;
            notaFiscalAdd.LocalEstoque    = localEstoque;
            notaFiscalAdd.IdLocalEstoque  = localEstoque.IdLocalEstoque;
            notaFiscalAdd.TipoMovimento   = tipoMovimento;
            notaFiscalAdd.IdTipoMovimento = tipoMovimento.IdTipoMovimento;

            //indexar transportador
            notaFiscalAdd.Transportador = indexarDadosTransportador(lookUpTransportador.CliFor);

            return(notaFiscalAdd);
        }
Example #2
0
        private Movimento indexarMovimento(Boolean zerarReferencias = false)
        {
            Movimento movimentoAdd;
            var       tipoMovimento = lookUpTipoMovimento1.TipoMovimento;

            int sequencial         = 0;
            var cliForn            = lookUpCliFor1.CliFor;
            var formaPagto         = lookUpFormaPagamento1.FormaPagto;
            var centroCusto        = lookUpCentroCusto1.CentroCusto;
            var localEstoque       = lookUpLocalEstoque1.LocalEstoque;
            var filialNf           = lookUpMatrizFilial1.Filial;
            var tipoNF             = TypeDirecao.Entrada;
            var numNF              = String.Format("{0:000000000}", ParseUtil.ToInt(txtNumNf.Text));
            var dtEmissaoNf        = dtEmissao.Value.Date;
            var dtEntradaNf        = dtEntrada.Value.Date;
            var indicadorFrete     = rdTipoFrete.SelectedIndex;
            var valorFrete         = ParseUtil.ToDecimal(txtVlrFrete.Text);
            var valorDesconto      = ParseUtil.ToDecimal(txtVlrDesconto.Text);
            var valorBaseICMS      = 0M; //ParseUtil.ToDecimal(txtVlrBaseICMS.Text);
            var valorICMS          = 0M; // ParseUtil.ToDecimal(txtVlrICMS.Text);
            var valorBaseICMSST    = 0M; // ParseUtil.ToDecimal(txtVlrBaseICMSST.Text);
            var valorICMSST        = 0M; // ParseUtil.ToDecimal(txtVlrICMSST.Text);
            var valorSeguro        = ParseUtil.ToDecimal(txtVlrSeguro.Text);
            var valorDespesas      = ParseUtil.ToDecimal(txtVlrDespesas.Text);
            var valorTotalProdutos = 0M;
            var serie              = txtSerie.Text;
            var subserie           = txtSubSerie.Text;
            var observacoes        = memoEditObservacoes.Text;

            //se foi escolhido um tipo de movimento..
            if (tipoMovimento != null)
            {
                //verificacao da direcao do movimento...
                if (tipoMovimento.Direcao == Entidades.Enumeradores.RegraFiscalEnum.TypeDirecao.Entrada)
                {
                    tipoNF = TypeDirecao.Entrada;
                }
                else
                {
                    tipoNF = TypeDirecao.Saída;
                }
            }

            movimentoAdd = new Movimento(cliForn, filialNf, tipoNF, numNF, dtEmissaoNf,
                                         dtEntradaNf, valorFrete, valorDesconto, valorBaseICMS, valorICMS,
                                         valorBaseICMSST, valorICMSST, valorSeguro, valorDespesas, valorTotalProdutos, /*Total NF*/ 0M, serie, subserie);
            movimentoAdd.CliFor = cliForn;

            foreach (var item in itensNota)
            {
                item.SequencialItem     = sequencial + 1;
                item.IndicadorMovFisica = 0;
                item.Produto            = item.Produto;
                valorTotalProdutos     += item.TotalItem;
                movimentoAdd.ItensMovimento.Add(item);
                sequencial++;//incrementa o seq do item
            }

            movimentoAdd.TotalProdutos  = movimentoAdd.CalculaTotalProdutos();
            movimentoAdd.TotalMovimento = movimentoAdd.CalcularTotaisNF();
            movimentoAdd.IndicadorFrete = indexModalidadeFrete(indicadorFrete);
            movimentoAdd.Observacoes    = observacoes;

            movimentoAdd.Usuario         = currentUser;
            movimentoAdd.IdUsuario       = currentUser.IdUsuario;
            movimentoAdd.EmpresaFilial   = filialNf;
            movimentoAdd.TipoMovimento   = tipoMovimento;
            movimentoAdd.IdTipoMovimento = tipoMovimento.IdTipoMovimento;
            movimentoAdd.IdSituacao      = 1;

            if (movimentoAdd.TipoMovimento.InformarCentro)
            {
                movimentoAdd.CentroCusto   = centroCusto;
                movimentoAdd.IdCentroCusto = centroCusto.IdCentroCusto;
            }

            //gerar parcelas somente se o tpmov gerar faturamento
            if (movimentoAdd.TipoMovimento.GerarFaturamento)
            {
                movimentoAdd.FormaPagamento   = formaPagto;
                movimentoAdd.IdFormaPagamento = formaPagto.IdFormaPagamento;
                movimentoAdd.GerarParcelas(movimentoAdd);
            }

            //se movimentar estoque, verificar se o local de estoque eh valido e usar para montar o objeto
            if (movimentoAdd.TipoMovimento.MovimentarEstoque && localEstoque != null)
            {
                movimentoAdd.LocalEstoque   = localEstoque;
                movimentoAdd.IdLocalEstoque = localEstoque.IdLocalEstoque;
            }

            return(movimentoAdd);
        }