public NFeBuilder AddPagamento(PagamentoNFe pagamento) { NFe.infNFe.pag.Add(pagamento.Pag); return(this); }
public NotaFiscal ToNFCe() { var ret = new NotaFiscal(); // InfNFe ret.InfNFe.versao = "4.0"; //Identificação ret.Identificacao.natOp = "Venda de Mercadoria"; ret.Identificacao.indPag = IndicadorPagamento.ipVista; ret.Identificacao.mod = ModeloNFe.moNFCe; ret.Identificacao.serie = Serie.ToString(); ret.Identificacao.nNF = Numero; ret.Identificacao.dhEmi = Data; ret.Identificacao.tpNF = TipoNFe.tnSaida; ret.Identificacao.finNFe = FinalidadeNFe.fnNormal; ret.Identificacao.idDest = DestinoOperacao.doInterna; ret.Identificacao.indFinal = ConsumidorFinal.cfConsumidorFinal; ret.Identificacao.indPres = PresencaComprador.pcPresencial; ret.Identificacao.indIntermed = IndIntermed.iiSemOperacao; ret.Identificacao.tpImp = TipoDANFE.tiNFCe; ret.Identificacao.tpAmb = TipoAmbiente.taHomologacao; //Emitente ret.Emitente.CRT = Configuracao.Instance.Emitente.CRT; ret.Emitente.CNPJCPF = Configuracao.Instance.Emitente.CNPJ.OnlyNumbers(); ret.Emitente.IE = Configuracao.Instance.Emitente.IE.OnlyNumbers(); ret.Emitente.xNome = Configuracao.Instance.Emitente.Razao; ret.Emitente.xFant = Configuracao.Instance.Emitente.Fantasia; ret.Emitente.Fone = Configuracao.Instance.Emitente.Fone; ret.Emitente.CEP = Configuracao.Instance.Emitente.CEP; ret.Emitente.xLgr = Configuracao.Instance.Emitente.Logradouro; ret.Emitente.nro = Configuracao.Instance.Emitente.Numero; ret.Emitente.xCpl = Configuracao.Instance.Emitente.Complemento; ret.Emitente.xBairro = Configuracao.Instance.Emitente.Bairro; ret.Emitente.cMun = Configuracao.Instance.Emitente.CidadeCod.ToInt32(); ret.Emitente.xMun = Configuracao.Instance.Emitente.Cidade; ret.Emitente.UF = Configuracao.Instance.Emitente.UF; //Destinatario ret.Destinatario.indIEDest = IndicadorIE.inNaoContribuinte; if (!string.IsNullOrEmpty(Cliente.Documento)) { ret.Destinatario.CNPJCPF = Cliente.Documento.OnlyNumbers(); } if (!string.IsNullOrEmpty(Cliente.Nome)) { ret.Destinatario.xNome = Cliente.Nome; } foreach (var item in Items) { if (item.Cancelado) { continue; } var produto = new ProdutoNFe { CFOP = "5.102", cProd = item.Produto.Codigo, cEAN = "SEM GTIN", xProd = item.Produto.Descricao, NCM = "84719012", uCom = item.Produto.Unidade, qCom = item.Quantidade, vUnCom = item.Produto.Valor, vProd = item.ValorTotal, vDesc = 0M, vFrete = 0M, vSeg = 0M, vOutro = 0M, indEscala = IndEscala.ieNaoRelevante, CNPJFab = "05481336000137", uTrib = item.Produto.Unidade, cEANTrib = "SEM GTIN" }; produto.ICMS.CSOSN = CSOSNIcms.csosn900; produto.ICMS.orig = OrigemMercadoria.oeNacional; produto.ICMS.vBC = 100M; produto.ICMS.pICMS = 10M; produto.ICMS.vICMS = 10M; produto.ICMS.pCredSN = 0M; produto.ICMS.vCredICMSSN = 0M; produto.ICMS.modBCST = DeterminacaoBaseIcmsST.dbisMargemValorAgregado; produto.ICMS.vBCST = 0M; produto.ICMS.pICMSST = 0M; produto.ICMS.vICMSST = 0M; produto.ICMS.pRedBC = 0M; produto.ICMS.vBCFCP = 0M; produto.ICMS.pFCP = 0M; produto.ICMS.vFCP = 0M; produto.PIS.CST = CSTPIS.pis01; produto.PIS.vBC = 0M; produto.PIS.pPIS = 0M; produto.PIS.vPIS = 0M; produto.COFINS.CST = CSTCofins.cof01; produto.COFINS.vBC = 0M; produto.COFINS.pCOFINS = 0M; produto.COFINS.vCOFINS = 0M; produto.IPI.CST = CSTIPI.ipi53; produto.IPI.vBC = 0M; produto.IPI.pIPI = 0M; produto.IPI.vIPI = 0M; ret.Produtos.Add(produto); } ret.Total.vBC = (100 * Items.Count); ret.Total.vICMS = (10 * Items.Count); ret.Total.vICMSDeson = 0M; ret.Total.vBCST = 0M; ret.Total.vST = 0M; ret.Total.vProd = Items.Sum(x => x.ValorTotal).RoundABNT(); ret.Total.vFrete = 0M; ret.Total.vSeg = 0M; ret.Total.vDesc = 0M; ret.Total.vIPI = 0M; ret.Total.vPIS = 0M; ret.Total.vCOFINS = 0M; ret.Total.vOutro = 0M; ret.Total.vNF = Items.Sum(x => x.ValorTotal).RoundABNT(); ret.Total.vFCP = 0M; ret.DadosAdicionais.infCpl = ""; ret.Transportador.modFrete = ModalidadeFrete.mfSemFrete; for (var i = 0; i < Pagamentos.Count; i++) { var pagamento = new PagamentoNFe { tPag = Pagamentos[i].TipoNFe, vPag = Pagamentos[i].Valor }; if (i == 0 && Troco > 0) { pagamento.vTroco = Troco; } ret.Pagamentos.Add(pagamento); } return(ret); }