Пример #1
0
 public frmNFeCancelar(NfeVO tempNFe, nfec.Parametro tempParametro) 
 {
     InitializeComponent();
     identNFe = tempNFe;
     parametroNfe = tempParametro;
     txtNFe.Text = identNFe.ChaveNFE;
     txtProtocolo.Text = identNFe.NumProtocolo;
 }
Пример #2
0
 public frmNFeInutilizar(nfec.Parametro tempParametro) 
 {
     InitializeComponent();
     parametroNfe = tempParametro;
 }
Пример #3
0
 public string ConsultaNFe(string chNfe, nfec.Parametro parametroNfe)
 {
     return new nfec.nfecsharp().NfeConsulta(chNfe, parametroNfe);
 }
Пример #4
0
 public string CancelamentoNFe(string chNfe, string nProt,string xJust, nfec.Parametro parametroNfe)
 {
    return new nfec.nfecsharp().NfeCancelamento(chNfe, nProt, xJust, parametroNfe);
 }
Пример #5
0
 public string DistribuicaoNFe(string chNFe, string recibo, string lote, nfec.Parametro parametroNfe)
 {
    return new nfec.nfecsharp().DistribuicaoNFe(chNFe, recibo, lote,parametroNfe);
 }
Пример #6
0
 public string RetRecepcaoNfe(string recibo, nfec.Parametro parametroNfe)
 {
     return new nfec.nfecsharp().NfeRetRecepcao(recibo, parametroNfe);
 }
Пример #7
0
 public string RecepcaoNFe(string refStatus, nfec.Parametro parametroNfe)
 {
     return new nfec.nfecsharp().NfeRecepcao(refStatus, parametroNfe);
 }
Пример #8
0
 public string StatusServicoNFe(nfec.Parametro parametroNfe)
 {
     return new nfec.nfecsharp().NfeStatusServico(parametroNfe);
 }
Пример #9
0
 public string GerarLote(string p, nfec.Parametro parametroNfe, int codLote)
 {
     return new nfec.nfecsharp().GerarLote(p, parametroNfe, codLote);   
 }
Пример #10
0
 public bool ValidarNFe(string caminho,nfec.Parametro parametroNFe, string schema)
 {
     return new nfec.nfecsharp().ValidarArquivoXML(caminho, parametroNFe, schema);
 }
Пример #11
0
        // ------------------------------------------------------------------------- //
        /// <summary>
        /// Método de criação do xml com os dados da nota fiscal para nfe
        /// </summary>
        /// <param name="identNotaFiscal">Classe onde contém os dados da Nota Fiscal</param>
        /// <param name="parametroNfe">Classe onde contém os parametros da NF-e</param>
        /// <returns></returns>
        public string GerarNFe(NotaFiscalVO identNotaFiscal, nfec.Parametro parametroNfe)
        {
            string[] ide, emit, dest, total, transp, cobr, infAdic;
            string[,] prod;
            ide = new string[14];
            emit = new string[17];
            dest = new string[20];
            prod = new string[Convert.ToInt32(identNotaFiscal.Itens.Count), 60];
            total = new string[16];
            transp = new string[15];
            cobr = new string[6];
            infAdic = new string[2]; 
            try
            {

                /*<ide> TAG de grupo das informações de identificação da NF-e*/
                ide[0] = identNotaFiscal.Emitente.Cep.Cidade.UF.CodUF;//<cUF>
                ide[1] = identNotaFiscal.CodNF.ToString().PadLeft(8, '0');//<cNF> //8 DIGITOS A PARTIR DA VERSAO 2.0 (MANUAL 4.01)
                ide[2] = identNotaFiscal.CFOP.NaturezaOperacao; //<natOp>
                if (identNotaFiscal.IndFaturamento == null)
                    ide[3] = "2";
                else
                    ide[3] = identNotaFiscal.IndFaturamento == false ? "0" : "1"; //<indPag>
                ide[4] = "55"; //<mod>
                ide[5] = identNotaFiscal.Serie; //<serie>
                ide[6] = identNotaFiscal.NF.ToString();//<nNF>
                ide[7] = DateTime.Today.ToString("yyyy-MM-dd");         	 //<dEmi>
                if (identNotaFiscal.DataEntradaSaida != null)
                {
                    ide[8] = identNotaFiscal.DataEntradaSaida.Value.ToString("yyyy-MM-dd");          //<dSaiEnt>
                }
                else
                {
                    ide[8] = string.Empty;

                }
                ide[9] = identNotaFiscal.IndEntradaSaida == false ? "0" : "1";																		 //<tpNF>
                ide[10] = identNotaFiscal.Emitente.Cep.Cidade.CodIBGE;//txtCodMun.Text;//<cMunFG>
                ide[11] = identNotaFiscal.NFe.IndTipoEmissao;//<tpEmis> - Verificar no sistema se for erro de rede
                ide[12] = identNotaFiscal.IndFinalidadeNF;//<finNFe> Criar flag de escolha conforme manual 1- NF-e normal/ 2-NF-e complementar / 3 – NF-e de ajuste 
                ide[13] = identNotaFiscal.RefNFe; //NFref: <refNFe> 'nf-e relacionadas'

                /*<emit>TAG de grupo de identificação do emitente da NF-e*/
                emit[0] = identNotaFiscal.Emitente.CNPJ;
                emit[1] = identNotaFiscal.Emitente.RazaoSocial.Trim(); //<xNome>
                emit[2] = identNotaFiscal.Emitente.NomeFantasia.Trim();//<xFant>
                emit[3] = identNotaFiscal.Emitente.Logradouro.Trim(); //<xLgr>
                emit[4] = identNotaFiscal.Emitente.Numero.ToString(); //<nro>
                emit[5] = identNotaFiscal.Emitente.Complemento.Trim();//<xCpl>
                emit[6] = identNotaFiscal.Emitente.Cep.Bairro.NomBairro.Trim(); //<xBairro>
                emit[7] = identNotaFiscal.Emitente.Cep.Cidade.CodIBGE; //<cMun>
                emit[8] = identNotaFiscal.Emitente.Cep.Cidade.NomCidade.Trim(); //<xMun>
                emit[9] = identNotaFiscal.Emitente.Cep.Cidade.UF.CodUF;//<xUF>
                emit[10] = identNotaFiscal.Emitente.Cep.CodCep.Trim(); //<CEP>
                emit[11] = identNotaFiscal.Emitente.Telefone; //<fone>
                emit[12] = identNotaFiscal.Emitente.InscricaoEstadual; //<IE>
                emit[13] = identNotaFiscal.Emitente.InscricaoMunicipal; //<IM>
                emit[14] = identNotaFiscal.Emitente.CNAE;//<CNAE>
                emit[15] = "";//<IEST>
                emit[16] = identNotaFiscal.NFe.CRT;//<CRT> 1 – Simples Nacional; 2 – Simples Nacional – excesso de sublimite de receita bruta; 3 – Regime Normal

                /*<dest> TAG de grupo de identificação do Destinatário da NF-e*/
                dest[0] = identNotaFiscal.Cliente.CNPJ;//<CNPJ> ou <CPF>
                dest[1] = identNotaFiscal.Cliente.RazaoSocial.Trim();//<xNome>
                dest[2] = identNotaFiscal.Cliente.Cep.NomEndereco.Trim();//<xLgr>
                dest[3] = identNotaFiscal.Cliente.Numero.Trim();//<nro>
                dest[4] = identNotaFiscal.Cliente.Complemento.Trim();//<xCpl>
                dest[5] = identNotaFiscal.Cliente.Cep.Bairro.NomBairro.Trim();//<xBairro>
                dest[6] = identNotaFiscal.Cliente.Cep.Cidade.CodIBGE;//<cMun>
                dest[7] = identNotaFiscal.Cliente.Cep.Cidade.NomCidade.Trim();//<xMun>
                dest[8] = identNotaFiscal.Cliente.Cep.Cidade.UF.CodUF;//<UF>
                dest[9] = identNotaFiscal.Cliente.Cep.CodCep.Trim();//<CEP>
                dest[10] = "1058";//<cPais>
                dest[11] = "BRASIL";//<xPais>
                dest[12] = identNotaFiscal.Cliente.Telefone;//<fone>
                dest[13] = identNotaFiscal.Cliente.InscricaoEstadual;//<IE>
                dest[14] = "";//<ISUF>

                /* Grupo de Exportação v6.01 */
                dest[15] = "SP";														//UFEmbarq
                dest[16] = "11";														//xLocEmbarq

                /* Grupo de Compra v6.01 */
                dest[17] = "SP";														//xNEmp
                dest[18] = "SP";														//xPed
                dest[19] = "SP";														//xCont

                /*<prod> TAG de grupo do detalhamento de Produtos e Serviços da NF-e*/
                int x = 0;
                foreach (ItemNotaFiscalVO identItemNotaFiscal in identNotaFiscal.Itens)
                {
                    prod[x, 0] = identItemNotaFiscal.Produto.Codigo.Trim();//<cProd>
                    prod[x, 1] = "";					//<cEAN>
                    string Op = string.Empty;
                    if (!string.IsNullOrEmpty(identItemNotaFiscal.OP))
                        Op = " - OP.: " + identItemNotaFiscal.OP.Trim();
                    string pedido = string.Empty;
                    if (!string.IsNullOrEmpty(identItemNotaFiscal.CodPedidoCliente))
                        pedido = " - Ped.: " + identItemNotaFiscal.CodPedidoCliente.Trim();
                    prod[x, 2] = identItemNotaFiscal.Produto.Descricao.Trim()+pedido+Op; //<xProd>
                    prod[x, 3] = identItemNotaFiscal.Produto.NCM;//"73181500";                        //<NCM>
                    prod[x, 4] = "";                                //<EXTIPI> //Antes da vr 2.00, esta posicao era o GENERO.
                    prod[x, 5] = identNotaFiscal.CFOP.CFOP;//<CFOP>
                    prod[x, 6] = identItemNotaFiscal.Produto.Unidade.TipoUnidade.Trim();//<uCom>
                    prod[x, 7] = identItemNotaFiscal.Qtd.ToString(); //<qCom>
                    prod[x, 8] = identItemNotaFiscal.Valor.ToString();//<vUnCom>
                    prod[x, 9] = identItemNotaFiscal.TotalItem.ToString();// "10.00";//<vProd>
                    prod[x, 10] = "";   //eantrib //<cEANTrib>
                    prod[x, 11] = identItemNotaFiscal.Produto.Unidade.TipoUnidade.Trim();// "Kg"; //<uTrib>
                    prod[x, 12] = identItemNotaFiscal.Qtd.ToString();  //<qTrib>
                    prod[x, 13] = identItemNotaFiscal.Valor.ToString();// "10.0000";//<vUnTrib>
                    prod[x, 14] = identNotaFiscal.ValorFrete.ToString(); //"1.00";      //<vFrete>
                    prod[x, 15] = identNotaFiscal.ValorSeguro.ToString(); //"1.00";     //<vSeg>
                    prod[x, 16] = identItemNotaFiscal.Desconto.ToString(); //"1.00";    //<vDesc>   

                    /* tag ICMS */
                    prod[x, 17] = identItemNotaFiscal.Icms.CodOrigem.ToString();	//<orig>
                    prod[x, 18] = identItemNotaFiscal.Icms.CodTipoTributacao;      //txtCstIcms.Text;						//<CST>
                    prod[x, 19] = identItemNotaFiscal.Icms.CodBaseCalculo.ToString();//<modBC>
                    prod[x, 20] = identItemNotaFiscal.TotalItem.ToString(); //10.0000 //<vBC>
                    prod[x, 21] = identItemNotaFiscal.ICMS.ToString(); //"17.00";									//<pICMS>
                    prod[x, 22] = identItemNotaFiscal.CalcIcms.ToString(); // "1.70";//<vICMS>
                    if (identNotaFiscal.NFe.CRT == "1")
                    {
                        prod[x, 46] = "0";// "0";									//<modBCST>			{ campo novo }
                        prod[x, 47] = "";// "";										//<pMVAST>			{ campo novo }
                        prod[x, 48] = ""; //"";										//<pRedBCST>		{ campo novo }

                        prod[x, 49] = "0";									//<vBCSTRet>			//foi modificado, antes vBCST; v6.01 = vBCSTRet
                        prod[x, 50] = "0";									//<vICMSSTRet>			//foi modificado, antes vICMSST; v6.01 = vICMSSTRet

                        prod[x, 51] = "0";									//<vICMSST>			{ campo novo }				
                        prod[x, 52] = "0";// "0";             						//<pRedBC>			{ campo novo }


                        /* tag IPI */
                        prod[x, 23] = "99";						    //IPI <CST>
                        prod[x, 24] = "0.00";											//IPI <vBC>
                        prod[x, 25] = "0";												//IPI <pIPI>
                        prod[x, 26] = "0.00";												//IPI <vIPI>

                        /* tag II */
                        prod[x, 27] = "";               							 //II <vBC>
                        prod[x, 28] = "";               							 //II <vDespAdu>
                        prod[x, 29] = "";               								 //II <vII>
                        prod[x, 30] = "";               							 //II <vIOF>


                        /* tag PIS */
                        prod[x, 31] = "99";     						  //<CST>
                        prod[x, 32] = "0.00"; //"10.00";           						  //<vBC>
                        prod[x, 33] = "0.00";             						  //<pPIS>
                        prod[x, 34] = "0.00";             						  //<vPis>
                        prod[x, 45] = "0.00";               						  //<vAliqProd>     { campo novo }

                        /* tag COFINS */
                        prod[x, 35] = "99";  							//<CST>
                        prod[x, 36] = "0.00";//"10.00";										//<vBC>
                        prod[x, 37] = "0.00";											//<pCOFINS>
                        prod[x, 38] = "0.00";											//<vCOFINS>
                        prod[x, 44] = "0.00";											//<vAliqProd>     { campo novo }

                        /* tag ISSQN */
                        prod[x, 39] = "";                					//ISSQN <vBC>
                        prod[x, 40] = "";                					//ISSQN <vAliq>
                        prod[x, 41] = "";                					//ISSQN <vISSQN>
                        prod[x, 42] = "";                            //ISSQN <cMunFG>
                        prod[x, 43] = "";            						//ISSQN <cListServ>

                        prod[x, 53] = identItemNotaFiscal.Observacao;            						//infAdProd

                        /*tag PISST*/
                        prod[x, 54] = "";								//vBC
                        prod[x, 55] = "";								//pPIS
                        prod[x, 56] = "";								//vPIS


                        /*tag COFINSST*/
                        prod[x, 57] = "";								//vBC
                        prod[x, 58] = "";								//pCOFINS
                        prod[x, 59] = "";								//vCOFINS
                        x++;
                    }
                    else
                    {
                        prod[x, 46] = identItemNotaFiscal.Icms.CodBaseCalculoICMSST.ToString();// "0";									//<modBCST>			{ campo novo }
                        prod[x, 47] = identItemNotaFiscal.Icms.PercentualMargemST.ToString();// "";										//<pMVAST>			{ campo novo }
                        prod[x, 48] = identItemNotaFiscal.Icms.PercentualReducaoST.ToString(); //"";										//<pRedBCST>		{ campo novo }
                        prod[x, 52] = identItemNotaFiscal.Icms.PercentualReducao.ToString();// "0";             						//<pRedBC>			{ campo novo }
                    }
                }//for

                /*<total> TAG de grupo de Valores Totais da NF-e */
                if (identNotaFiscal.NFe.CRT == "1")
                {
                    total[0] = "0.00";// "50.00";          //ICMSTot <vBC>
                    total[1] = "0.00";// "8.50";          //ICMSTot <vICMS>
                }
                else
                {
                    total[0] = identNotaFiscal.BaseCalcIcms.ToString();// "50.00";          //ICMSTot <vBC>
                    total[1] = identNotaFiscal.ValTotalImcs.ToString();// "8.50";          //ICMSTot <vICMS>
                }
                total[2] = "0.00";          //ICMSTot <vBCST>
                total[3] = "0.00";          //ICMSTot <vST>
                identNotaFiscal = NotaFiscal.CalcTotais(identNotaFiscal);
                total[4] = identNotaFiscal.ValTotalProduto.ToString(); //"50.00";          //ICMSTot <vProd>
                total[5] = identNotaFiscal.ValorFrete.ToString(); //"5.00";          //ICMSTot <vFrete>
                total[6] = identNotaFiscal.ValorSeguro.ToString(); //"7.10";          //ICMSTot <vSeg>
                total[7] = identNotaFiscal.ValTotalDesc.ToString(); // "8.10";          //ICMSTot <vDesc>
                total[8] = "0.00";          //ICMSTot <vII>
                total[9] = "0.00";        //ICMSTot <vIPI>
                total[10] = "0.00";      //ICMSTot <vPIS>
                total[11] = "0.00";      //ICMSTot <vCOFINS>
                total[12] = identNotaFiscal.OutDespAce.ToString(); // "0.00";      //ICMSTot <vOutro>
                total[13] = identNotaFiscal.ValTotalNota.ToString(); //"50.00";      //ICMSTot <vNF>

                /*<transp> Informações do Transporte da NF-e*/

                transp[0] = identNotaFiscal.IndFretePorConta == true ? "1" : "0"; //"0";	//<modFrete>
                if (!string.IsNullOrEmpty(identNotaFiscal.Transportadora.CNPJ))
                {
                    transp[1] = identNotaFiscal.Transportadora.CNPJ;// "34261131000144";             //<CNPJ> ou <CPF>
                    transp[2] = identNotaFiscal.Transportadora.RazaoSocial.Trim(); // "Teste Transp Jack";			//<xNome>
                    transp[3] = identNotaFiscal.Transportadora.InscricaoEstadual; // "7012578100048";				//<IE>
                    string transnumero = string.Empty;
                    if (!string.IsNullOrEmpty(identNotaFiscal.Transportadora.Numero))
                        transnumero = ", " + identNotaFiscal.Transportadora.Numero.Trim();
                    string complemento = string.Empty;
                    if (!string.IsNullOrEmpty(identNotaFiscal.Transportadora.Complemento))
                        complemento = " - " + identNotaFiscal.Transportadora.Complemento.Trim();
                    string bairro = string.Empty;
                    if (!string.IsNullOrEmpty(identNotaFiscal.Transportadora.Cep.Bairro.NomBairro))
                        bairro = " - " + identNotaFiscal.Transportadora.Cep.Bairro.NomBairro.Trim();
                    string enderecoCompleto = identNotaFiscal.Transportadora.Cep.NomEndereco.Trim()+transnumero+complemento+bairro;
                    if (enderecoCompleto.Length > 60)
                        enderecoCompleto = enderecoCompleto.Substring(0, 60);
                    transp[4] = enderecoCompleto; // "Teste End. Transp. Jack";  //<xEnder>
                    transp[5] = identNotaFiscal.Transportadora.Cep.Cidade.NomCidade.Trim(); //"Belo Horizonte";					//<xMun>
                    transp[6] = identNotaFiscal.Transportadora.Cep.Cidade.UF.CodUF.Trim(); //"MG";										//<UF>
                }
                else
                {
                    transp[1] = "";// "34261131000144";             //<CNPJ> ou <CPF>
                    transp[2] = ""; // "Teste Transp Jack";			//<xNome>
                    transp[3] = ""; // "7012578100048";				//<IE>
                    transp[4] = ""; // "Teste End. Transp. Jack";  //<xEnder>
                    transp[5] = ""; //"Belo Horizonte";					//<xMun>
                    transp[6] = ""; //"MG";										//<UF>
                    transp[7] = ""; // "XOX2255";							//<placa>
                    transp[8] = ""; //"MG";										//<UF>
                }
                
                transp[9] = identNotaFiscal.QtdVolumes.Trim(); //"5";//<qVol>
                transp[10] = identNotaFiscal.Especie.Trim(); // "VOLUME";							//<esp>
                transp[11] = identNotaFiscal.Marca.Trim(); // "JACK";								//<marca>
                transp[12] = identNotaFiscal.Numero.Trim(); // "99";									//<nVol>
                transp[13] = identNotaFiscal.PesoLiquido.Trim(); //"11.535";							//<pesoL>
                transp[14] = identNotaFiscal.PesoBruto.ToString(); //"15.282";							//<pesoB>
                
                /*<cobr> Dados da Cobrança*/
                int j = 0;
                string numero = string.Empty;
                string vencimento = string.Empty;
                string valor = string.Empty;
                foreach (DuplicataVO identDuplicata in identNotaFiscal.Duplicatas)
                {
                    j++;
                    numero += j.ToString().PadLeft(2, '0') + ";";
                    vencimento += identDuplicata.Vencimento.Value.ToString("yyyy-MM-dd") + ";";
                    valor += identDuplicata.Valor.ToString() + ";";
                }
                cobr[0] = identNotaFiscal.NF.ToString();// "22";                   //fat <nFat>
                cobr[1] = identNotaFiscal.ValTotalNota.ToString(); //"50";                   //fat <vOrig>
                if (identNotaFiscal.Duplicatas.Count > 0)
                {
                    cobr[2] = identNotaFiscal.ValTotalNota.ToString(); //"453.28";            //fat <vLiq>
                }
                else
                    cobr[2] = string.Empty; //"453.28";            //fat <vLiq>
                /* neste ex, existem 2 parcelas */
                cobr[3] = numero.ToString().PadLeft(2, '0');//"01;02;";									//dup <nDup>
                cobr[4] = vencimento;//"2008-05-30;2008-06-30;";    //dup <dVenc>
                cobr[5] = valor;//"226.64;226.64;";					//dup <vDup>
                /*<infAdic> Informações Adicionais da NF-e*/
                infAdic[0] = "";
                string mensagemnfe = string.Empty;
                string observacao = string.Empty;
                string enderecoCobranca = string.Empty;
                Regex remover = new Regex(@"[\t\r\n]",RegexOptions.Compiled);
                string mensagemnf = string.Empty;
                if (!string.IsNullOrEmpty(mensagemnf))
                    mensagemnf =" - "+ identNotaFiscal.MensagemNF.Descricao.Trim();
                if (!string.IsNullOrEmpty(identNotaFiscal.Observacao))
                    observacao = " - "+remover.Replace(identNotaFiscal.Observacao, "");
                if (!string.IsNullOrEmpty(identNotaFiscal.Cliente.CepCobranca))
                    enderecoCobranca = " - Endereço de Cobrança: Cep: " + identNotaFiscal.Cliente.CepCobranca.Trim();
                if (!string.IsNullOrEmpty(identNotaFiscal.Cliente.EnderecoCobranca))
                    enderecoCobranca += " - "+identNotaFiscal.Cliente.EnderecoCobranca.Trim();

                infAdic[1] = "DOCUMENTO EMITIDO POR ME OPTANTE PELO SIMPLES NACIONAL. NAO GERA DIREITO A CREDITO FISCAL DE ICMS, ISS E IPI. - " +  //infAdFisco
                               "Valor R$ " + FormataValor(identNotaFiscal.ValTotalImcs.ToString(), 2) + " Aliquota " + identNotaFiscal.ICMS.ToString() + "% Nos termos do Art. 23 da LC 123/2006" + observacao + enderecoCobranca + mensagemnf; 		//infCpl




            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
                
            }
            /* chamar função para gerar a nf-e*/
            nfec.nfecsharp nfe = new nfec.nfecsharp();

            string erroMensagem = nfe.GeraNFe(ide, emit, dest, prod, total, transp, cobr, infAdic, parametroNfe, true);
            return erroMensagem;
        }