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); }
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); }