Пример #1
0
 public IList <NFeCabecalhoDTO> selectNFeCabecalho(NFeCabecalhoDTO nfeCabecalho)
 {
     try
     {
         IList <NFeCabecalhoDTO> resultado = null;
         using (ISession session = NHibernateHelper.getSessionFactory().OpenSession())
         {
             NHibernateDAL <NFeCabecalhoDTO> nfeDAL = new NHibernateDAL <NFeCabecalhoDTO>(session);
             resultado = nfeDAL.select(nfeCabecalho);
         }
         return(resultado);
     }
     catch (Exception ex)
     {
         throw new FaultException(ex.Message);
     }
 }
Пример #2
0
        public NFeCabecalhoDTO selectNFeCabecalhoId(int id)
        {
            try
            {
                NFeCabecalhoDTO resultado = null;
                using (ISession session = NHibernateHelper.getSessionFactory().OpenSession())
                {
                    NHibernateDAL <NFeCabecalhoDTO> nfeDAL = new NHibernateDAL <NFeCabecalhoDTO>(session);
                    resultado = nfeDAL.selectId <NFeCabecalhoDTO>(id);

                    NHibernateDAL <NFeDestinatarioDTO> nfeDest  = new NHibernateDAL <NFeDestinatarioDTO>(session);
                    IList <NFeDestinatarioDTO>         listDest = nfeDest.select <NFeDestinatarioDTO>(new NFeDestinatarioDTO {
                        idNFeCabecalho = id
                    });
                    if (listDest.Count > 0)
                    {
                        resultado.destinatario = listDest.First();
                    }

                    NHibernateDAL <NFeEmitenteDTO> nfeEmit  = new NHibernateDAL <NFeEmitenteDTO>(session);
                    IList <NFeEmitenteDTO>         listEmit = nfeDest.select <NFeEmitenteDTO>(new NFeEmitenteDTO {
                        idNFeCabecalho = id
                    });
                    if (listEmit.Count > 0)
                    {
                        resultado.emitente = listEmit.First();
                    }

                    NHibernateDAL <NFeLocalEntregaDTO> nfeLE  = new NHibernateDAL <NFeLocalEntregaDTO>(session);
                    IList <NFeLocalEntregaDTO>         listLE = nfeLE.select <NFeLocalEntregaDTO>(new NFeLocalEntregaDTO {
                        idNFeCabecalho = id
                    });
                    if (listLE.Count > 0)
                    {
                        resultado.localEntrega = listLE.First();
                    }

                    NHibernateDAL <NFeLocalRetiradaDTO> nfeLR  = new NHibernateDAL <NFeLocalRetiradaDTO>(session);
                    IList <NFeLocalRetiradaDTO>         listLR = nfeLR.select <NFeLocalRetiradaDTO>(new NFeLocalRetiradaDTO {
                        idNFeCabecalho = id
                    });
                    if (listLR.Count > 0)
                    {
                        resultado.localRetirada = listLR.First();
                    }

                    NHibernateDAL <NFeTransporteDTO> nfeTransporte = new NHibernateDAL <NFeTransporteDTO>(session);
                    IList <NFeTransporteDTO>         listTransp    = nfeTransporte.select <NFeTransporteDTO>(new NFeTransporteDTO {
                        idNFeCabecalho = id
                    });
                    if (listTransp.Count > 0)
                    {
                        resultado.transporte = listTransp.First();
                    }

                    NHibernateDAL <NFeFaturaDTO> nfeFatura = new NHibernateDAL <NFeFaturaDTO>(session);
                    IList <NFeFaturaDTO>         listFat   = nfeFatura.select <NFeFaturaDTO>(new NFeFaturaDTO {
                        idNFeCabecalho = id
                    });
                    if (listFat.Count > 0)
                    {
                        resultado.fatura = listFat.First();
                    }

                    NHibernateDAL <NFeCupomFiscalDTO> nfeCF = new NHibernateDAL <NFeCupomFiscalDTO>(session);
                    resultado.listaCupomFiscal = nfeCF.select <NFeCupomFiscalDTO>(new NFeCupomFiscalDTO {
                        idNFeCabecalho = id
                    });

                    NHibernateDAL <NFeDetalheDTO> nfeDetDAL = new NHibernateDAL <NFeDetalheDTO>(session);
                    resultado.listaDetalhe = nfeDetDAL.select <NFeDetalheDTO>(new NFeDetalheDTO {
                        idNFeCabecalho = id
                    });

                    foreach (NFeDetalheDTO item in resultado.listaDetalhe)
                    {
                        NHibernateDAL <NfeDetalheImpostoCofinsDTO> nfeDetCofins = new NHibernateDAL <NfeDetalheImpostoCofinsDTO>(session);
                        item.impostoCofins = nfeDetCofins.selectObjeto <NfeDetalheImpostoCofinsDTO>(new NfeDetalheImpostoCofinsDTO {
                            idNFeDetalhe = item.id
                        });

                        NHibernateDAL <NfeDetalheImpostoIcmsDTO> nfeDetIcms = new NHibernateDAL <NfeDetalheImpostoIcmsDTO>(session);
                        item.impostoIcms = nfeDetIcms.selectObjeto <NfeDetalheImpostoIcmsDTO>(new NfeDetalheImpostoIcmsDTO {
                            idNFeDetalhe = item.id
                        });

                        NHibernateDAL <NfeDetalheImpostoIssqnDTO> nfeDetIss = new NHibernateDAL <NfeDetalheImpostoIssqnDTO>(session);
                        item.impostoIss = nfeDetIss.selectObjeto <NfeDetalheImpostoIssqnDTO>(new NfeDetalheImpostoIssqnDTO {
                            idNFeDetalhe = item.id
                        });

                        NHibernateDAL <NfeDetalheImpostoPisDTO> nfeDetPis = new NHibernateDAL <NfeDetalheImpostoPisDTO>(session);
                        item.impostoPis = nfeDetPis.selectObjeto <NfeDetalheImpostoPisDTO>(new NfeDetalheImpostoPisDTO {
                            idNFeDetalhe = item.id
                        });

                        NHibernateDAL <NfeDetalheImpostoIpiDTO> nfeDetIpi = new NHibernateDAL <NfeDetalheImpostoIpiDTO>(session);
                        item.impostoIpi = nfeDetIpi.selectObjeto <NfeDetalheImpostoIpiDTO>(new NfeDetalheImpostoIpiDTO {
                            idNFeDetalhe = item.id
                        });

                        NHibernateDAL <NfeDetalheImpostoIiDTO> nfeDetII = new NHibernateDAL <NfeDetalheImpostoIiDTO>(session);
                        item.impostoII = nfeDetII.selectObjeto <NfeDetalheImpostoIiDTO>(new NfeDetalheImpostoIiDTO {
                            idNFeDetalhe = item.id
                        });
                    }


                    NHibernateDAL <NFeDuplicataDTO> nfeDupl = new NHibernateDAL <NFeDuplicataDTO>(session);
                    resultado.listaDuplicata = nfeDupl.select <NFeDuplicataDTO>(new NFeDuplicataDTO {
                        idNFeCabecalho = id
                    });
                }

                return(resultado);
            }
            catch (Exception ex)
            {
                throw new FaultException(ex.Message);
            }
        }
Пример #3
0
        public int salvarNFeCabecalho(NFeCabecalhoDTO nfeCabecalho)
        {
            try
            {
                int resultado = -1;
                using (ISession session = NHibernateHelper.getSessionFactory().OpenSession())
                {
                    NHibernateDAL <NFeCabecalhoDTO> nfeDAL = new NHibernateDAL <NFeCabecalhoDTO>(session);

                    nfeCabecalho.chaveAcesso = nfeCabecalho.emitente.codigoMunicipio.ToString().Substring(0, 2) +
                                               ((DateTime)nfeCabecalho.dataEmissao).ToString("yy") +
                                               ((DateTime)nfeCabecalho.dataEmissao).ToString("MM") +
                                               nfeCabecalho.emitente.cpfCnpj +
                                               (int.Parse(nfeCabecalho.codigoModelo)).ToString("00") +
                                               (int.Parse(nfeCabecalho.serie)).ToString("000") +
                                               (int.Parse(nfeCabecalho.numero)).ToString("000000000") +
                                               nfeCabecalho.finalidadeEmissao +
                                               (int.Parse(nfeCabecalho.numero)).ToString("00000000");
                    nfeCabecalho.digitoChaveAcesso = Biblioteca.DigitoModulo11(nfeCabecalho.chaveAcesso);

                    nfeCabecalho.numero         = (int.Parse(nfeCabecalho.numero)).ToString("000000000");
                    nfeCabecalho.codigoNumerico = (int.Parse(nfeCabecalho.numero)).ToString("00000000");

                    //Ambiente, 2 - homologacao
                    nfeCabecalho.ambiente = "2";

                    nfeDAL.saveOrUpdate(nfeCabecalho);

                    if (nfeCabecalho.destinatario != null)
                    {
                        NHibernateDAL <NFeDestinatarioDTO> nfeDest = new NHibernateDAL <NFeDestinatarioDTO>(session);
                        nfeCabecalho.destinatario.idNFeCabecalho = nfeCabecalho.id;
                        nfeDest.saveOrUpdate(nfeCabecalho.destinatario);
                    }

                    if (nfeCabecalho.emitente != null)
                    {
                        NHibernateDAL <NFeEmitenteDTO> nfeEmit = new NHibernateDAL <NFeEmitenteDTO>(session);
                        nfeCabecalho.emitente.idNFeCabecalho = nfeCabecalho.id;
                        nfeEmit.saveOrUpdate(nfeCabecalho.emitente);
                    }

                    if (nfeCabecalho.fatura != null)
                    {
                        NHibernateDAL <NFeFaturaDTO> nfeFatura = new NHibernateDAL <NFeFaturaDTO>(session);
                        nfeCabecalho.fatura.idNFeCabecalho = nfeCabecalho.id;
                        nfeFatura.saveOrUpdate(nfeCabecalho.fatura);
                    }

                    if (nfeCabecalho.listaDuplicata.Count > 0)
                    {
                        NHibernateDAL <NFeDuplicataDTO> nfeDuplicata = new NHibernateDAL <NFeDuplicataDTO>(session);

                        IList <NFeDuplicataDTO> listaDuplicataExistente = nfeDuplicata.select(new NFeDuplicataDTO {
                            idNFeCabecalho = nfeCabecalho.id
                        });
                        foreach (NFeDuplicataDTO duplicata in listaDuplicataExistente)
                        {
                            nfeDuplicata.delete(duplicata);
                        }

                        IList <NFeDuplicataDTO> listaDuplic = nfeCabecalho.listaDuplicata;
                        foreach (NFeDuplicataDTO duplic in listaDuplic)
                        {
                            duplic.idNFeCabecalho = nfeCabecalho.id;
                            nfeDuplicata.saveOrUpdate((NFeDuplicataDTO)session.Merge(duplic));
                        }
                    }

                    if (nfeCabecalho.listaCupomFiscal.Count > 0)
                    {
                        NHibernateDAL <NFeCupomFiscalDTO> nfeCF = new NHibernateDAL <NFeCupomFiscalDTO>(session);

                        IList <NFeCupomFiscalDTO> listaCFExistente = nfeCF.select(new NFeCupomFiscalDTO {
                            idNFeCabecalho = nfeCabecalho.id
                        });
                        foreach (NFeCupomFiscalDTO cf in listaCFExistente)
                        {
                            nfeCF.delete(cf);
                        }

                        IList <NFeCupomFiscalDTO> listaCupom = nfeCabecalho.listaCupomFiscal;
                        foreach (NFeCupomFiscalDTO nfeCupom in listaCupom)
                        {
                            nfeCupom.idNFeCabecalho = nfeCabecalho.id;
                            nfeCF.saveOrUpdate((NFeCupomFiscalDTO)session.Merge(nfeCupom));
                        }
                    }

                    if (nfeCabecalho.listaDetalhe.Count > 0)
                    {
                        NHibernateDAL <NFeDetalheDTO> nfeDetDAL = new NHibernateDAL <NFeDetalheDTO>(session);

                        IList <NFeDetalheDTO> listaDetalhe = nfeCabecalho.listaDetalhe;
                        foreach (NFeDetalheDTO nfeDet in listaDetalhe)
                        {
                            nfeDet.idNFeCabecalho = nfeCabecalho.id;
                            nfeDetDAL.saveOrUpdate(nfeDet);

                            nfeDetDAL.saveOrUpdate((NFeDetalheDTO)session.Merge(nfeDet));

                            if (nfeDet.impostoIcms != null)
                            {
                                NHibernateDAL <NfeDetalheImpostoIcmsDTO> impostoIcms = new NHibernateDAL <NfeDetalheImpostoIcmsDTO>(session);
                                nfeDet.impostoIcms.idNFeDetalhe = nfeDet.id;
                                impostoIcms.saveOrUpdate(nfeDet.impostoIcms);
                            }

                            if (nfeDet.impostoCofins != null)
                            {
                                NHibernateDAL <NfeDetalheImpostoCofinsDTO> impostoCofins = new NHibernateDAL <NfeDetalheImpostoCofinsDTO>(session);
                                nfeDet.impostoCofins.idNFeDetalhe = nfeDet.id;
                                impostoCofins.saveOrUpdate(nfeDet.impostoIcms);
                            }

                            if (nfeDet.impostoPis != null)
                            {
                                NHibernateDAL <NfeDetalheImpostoPisDTO> impostoPis = new NHibernateDAL <NfeDetalheImpostoPisDTO>(session);
                                nfeDet.impostoPis.idNFeDetalhe = nfeDet.id;
                                impostoPis.saveOrUpdate(nfeDet.impostoIcms);
                            }
                        }
                    }

                    if (nfeCabecalho.localEntrega != null)
                    {
                        NHibernateDAL <NFeLocalEntregaDTO> nfeLE = new NHibernateDAL <NFeLocalEntregaDTO>(session);
                        nfeCabecalho.localEntrega.idNFeCabecalho = nfeCabecalho.id;
                        nfeLE.saveOrUpdate(nfeCabecalho.localEntrega);
                    }

                    if (nfeCabecalho.localRetirada != null)
                    {
                        NHibernateDAL <NFeLocalRetiradaDTO> nfeLR = new NHibernateDAL <NFeLocalRetiradaDTO>(session);
                        nfeCabecalho.localRetirada.idNFeCabecalho = nfeCabecalho.id;
                        nfeLR.saveOrUpdate(nfeCabecalho.localRetirada);
                    }

                    if (nfeCabecalho.transporte != null)
                    {
                        NHibernateDAL <NFeTransporteDTO> nfeTransporte = new NHibernateDAL <NFeTransporteDTO>(session);
                        nfeCabecalho.transporte.idNFeCabecalho = nfeCabecalho.id;
                        nfeTransporte.saveOrUpdate(nfeCabecalho.transporte);
                    }



                    session.Flush();
                }

                return(resultado);
            }
            catch (Exception ex)
            {
                throw new FaultException(ex.Message);
            }
        }
Пример #4
0
        public int salvarNFeCabecalho(NFeCabecalhoDTO nfeCabecalho)
        {
            try
            {
                int resultado = -1;
                using (ISession session = NHibernateHelper.getSessionFactory().OpenSession())
                {
                    ITransaction transaction = session.BeginTransaction();
                    NHibernateDAL <NFeCabecalhoDTO> nfeDAL = new NHibernateDAL <NFeCabecalhoDTO>(session);

                    nfeDAL.saveOrUpdate(nfeCabecalho);

                    if (nfeCabecalho.destinatario != null)
                    {
                        NHibernateDAL <NFeDestinatarioDTO> nfeDest = new NHibernateDAL <NFeDestinatarioDTO>(session);
                        nfeCabecalho.destinatario.idNFeCabecalho = nfeCabecalho.id;
                        nfeDest.saveOrUpdate(nfeCabecalho.destinatario);
                    }

                    if (nfeCabecalho.emitente != null)
                    {
                        NHibernateDAL <NFeEmitenteDTO> nfeEmit = new NHibernateDAL <NFeEmitenteDTO>(session);
                        nfeCabecalho.emitente.idNFeCabecalho = nfeCabecalho.id;
                        nfeEmit.saveOrUpdate(nfeCabecalho.emitente);
                    }

                    if (nfeCabecalho.fatura != null)
                    {
                        NHibernateDAL <NFeFaturaDTO> nfeFatura = new NHibernateDAL <NFeFaturaDTO>(session);
                        nfeCabecalho.fatura.idNFeCabecalho = nfeCabecalho.id;
                        nfeFatura.saveOrUpdate(nfeCabecalho.fatura);
                    }

                    if (nfeCabecalho.listaDuplicata.Count > 0)
                    {
                        NHibernateDAL <NFeDuplicataDTO> nfeDuplicata = new NHibernateDAL <NFeDuplicataDTO>(session);

                        IList <NFeDuplicataDTO> listaDuplicataExistente = nfeDuplicata.select(new NFeDuplicataDTO {
                            idNFeCabecalho = nfeCabecalho.id
                        });
                        foreach (NFeDuplicataDTO duplicata in listaDuplicataExistente)
                        {
                            nfeDuplicata.delete(duplicata);
                        }

                        IList <NFeDuplicataDTO> listaDuplic = nfeCabecalho.listaDuplicata;
                        foreach (NFeDuplicataDTO duplic in listaDuplic)
                        {
                            duplic.idNFeCabecalho = nfeCabecalho.id;
                            nfeDuplicata.saveOrUpdate((NFeDuplicataDTO)session.Merge(duplic));
                        }
                    }

                    if (nfeCabecalho.listaCupomFiscal != null && nfeCabecalho.listaCupomFiscal.Count > 0)
                    {
                        NHibernateDAL <NFeCupomFiscalDTO> nfeCF = new NHibernateDAL <NFeCupomFiscalDTO>(session);

                        IList <NFeCupomFiscalDTO> listaCFExistente = nfeCF.select(new NFeCupomFiscalDTO {
                            idNFeCabecalho = nfeCabecalho.id
                        });
                        foreach (NFeCupomFiscalDTO cf in listaCFExistente)
                        {
                            nfeCF.delete(cf);
                        }

                        IList <NFeCupomFiscalDTO> listaCupom = nfeCabecalho.listaCupomFiscal;
                        foreach (NFeCupomFiscalDTO nfeCupom in listaCupom)
                        {
                            nfeCupom.idNFeCabecalho = nfeCabecalho.id;
                            nfeCF.saveOrUpdate((NFeCupomFiscalDTO)session.Merge(nfeCupom));
                        }
                    }

                    if (nfeCabecalho.listaDetalhe.Count > 0)
                    {
                        NHibernateDAL <NFeDetalheDTO> nfeDetDAL = new NHibernateDAL <NFeDetalheDTO>(session);

                        IList <NFeDetalheDTO> listaDetalhe = nfeCabecalho.listaDetalhe;
                        foreach (NFeDetalheDTO nfeDet in listaDetalhe)
                        {
                            nfeDet.idNFeCabecalho = nfeCabecalho.id;
                            nfeDetDAL.saveOrUpdate(nfeDet);

                            nfeDetDAL.saveOrUpdate((NFeDetalheDTO)session.Merge(nfeDet));

                            if (nfeDet.impostoIcms != null)
                            {
                                NHibernateDAL <NfeDetalheImpostoIcmsDTO> impostoIcms = new NHibernateDAL <NfeDetalheImpostoIcmsDTO>(session);
                                nfeDet.impostoIcms.idNFeDetalhe = nfeDet.id;
                                impostoIcms.saveOrUpdate(nfeDet.impostoIcms);
                            }

                            if (nfeDet.impostoCofins != null)
                            {
                                NHibernateDAL <NfeDetalheImpostoCofinsDTO> impostoCofins = new NHibernateDAL <NfeDetalheImpostoCofinsDTO>(session);
                                nfeDet.impostoCofins.idNFeDetalhe = nfeDet.id;
                                impostoCofins.saveOrUpdate(nfeDet.impostoIcms);
                            }

                            if (nfeDet.impostoPis != null)
                            {
                                NHibernateDAL <NfeDetalheImpostoPisDTO> impostoPis = new NHibernateDAL <NfeDetalheImpostoPisDTO>(session);
                                nfeDet.impostoPis.idNFeDetalhe = nfeDet.id;
                                impostoPis.saveOrUpdate(nfeDet.impostoIcms);
                            }
                        }
                    }

                    if (nfeCabecalho.localEntrega != null)
                    {
                        NHibernateDAL <NFeLocalEntregaDTO> nfeLE = new NHibernateDAL <NFeLocalEntregaDTO>(session);
                        nfeCabecalho.localEntrega.idNFeCabecalho = nfeCabecalho.id;
                        nfeLE.saveOrUpdate(nfeCabecalho.localEntrega);
                    }

                    if (nfeCabecalho.localRetirada != null)
                    {
                        NHibernateDAL <NFeLocalRetiradaDTO> nfeLR = new NHibernateDAL <NFeLocalRetiradaDTO>(session);
                        nfeCabecalho.localRetirada.idNFeCabecalho = nfeCabecalho.id;
                        nfeLR.saveOrUpdate(nfeCabecalho.localRetirada);
                    }

                    if (nfeCabecalho.transporte != null)
                    {
                        NHibernateDAL <NFeTransporteDTO> nfeTransporte = new NHibernateDAL <NFeTransporteDTO>(session);
                        nfeCabecalho.transporte.idNFeCabecalho = nfeCabecalho.id;
                        nfeTransporte.saveOrUpdate(nfeCabecalho.transporte);
                    }

                    session.Flush();
                    transaction.Commit();
                }

                return(resultado);
            }
            catch (Exception ex)
            {
                throw new FaultException(ex.Message);
            }
        }
Пример #5
0
        public bool importarNFe()
        {
            try
            {
                string FORMATO_DATA = "yyyy-MM-dd";

                OpenFileDialog dialog = new OpenFileDialog();
                dialog.Filter           = "Arquivos Processados NF-e (*-procNFe.xml) | *-procNFe.xml";
                dialog.Title            = "Selecione a NF-e";
                dialog.InitialDirectory = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);
                dialog.Multiselect      = false;

                if (dialog.ShowDialog() != true)
                {
                    return(false);
                }
                string path = dialog.FileName;

                XmlSerializer serializer = new XmlSerializer(typeof(TNfeProc));
                StreamReader  reader     = new StreamReader(path);

                TNfeProc nfeProc = (TNfeProc)serializer.Deserialize(reader);

                nfeSelected              = new NFeCabecalhoDTO();
                nfeSelected.emitente     = new NFeEmitenteDTO();
                nfeSelected.listaDetalhe = new List <NFeDetalheDTO>();

                nfeSelected.tipoOperacao            = "0";
                nfeSelected.codigoNumerico          = nfeProc.NFe.infNFe.ide.cNF;
                nfeSelected.naturezaOperacao        = nfeProc.NFe.infNFe.ide.natOp;
                nfeSelected.indicadorFormaPagamento = ((int)nfeProc.NFe.infNFe.ide.indPag).ToString();
                nfeSelected.codigoModelo            = nfeProc.NFe.infNFe.ide.mod.ToString().Replace("Item", "");
                nfeSelected.serie                 = nfeProc.NFe.infNFe.ide.serie;
                nfeSelected.numero                = nfeProc.NFe.infNFe.ide.nNF;
                nfeSelected.dataEmissao           = DateTime.ParseExact(nfeProc.NFe.infNFe.ide.dEmi, FORMATO_DATA, CultureInfo.InvariantCulture);
                nfeSelected.dataEntradaSaida      = DateTime.ParseExact(nfeProc.NFe.infNFe.ide.dSaiEnt, FORMATO_DATA, CultureInfo.InvariantCulture);
                nfeSelected.horaEntradaSaida      = nfeProc.NFe.infNFe.ide.hSaiEnt;
                nfeSelected.tipoEmissao           = nfeProc.NFe.infNFe.ide.tpEmis.ToString().Last().ToString();
                nfeSelected.versaoProcessoEmissao = nfeProc.NFe.infNFe.ide.verProc;
                nfeSelected.finalidadeEmissao     = nfeProc.NFe.infNFe.ide.finNFe.ToString().Last().ToString();
                nfeSelected.digitoChaveAcesso     = nfeProc.NFe.infNFe.ide.cDV;
                nfeSelected.chaveAcesso           = nfeProc.protNFe.infProt.chNFe;
                nfeSelected.formatoImpressaoDanfe = nfeProc.NFe.infNFe.ide.tpImp.ToString().Replace("Item", "");
                nfeSelected.ambiente              = nfeProc.NFe.infNFe.ide.tpAmb.ToString().Replace("Item", "");

                /*Emitente*/
                nfeSelected.emitente.logradouro      = nfeProc.NFe.infNFe.emit.enderEmit.xLgr;
                nfeSelected.emitente.numero          = nfeProc.NFe.infNFe.emit.enderEmit.nro;
                nfeSelected.emitente.complemento     = nfeProc.NFe.infNFe.emit.enderEmit.xCpl;
                nfeSelected.emitente.bairro          = nfeProc.NFe.infNFe.emit.enderEmit.xBairro;
                nfeSelected.emitente.codigoMunicipio = int.Parse(nfeProc.NFe.infNFe.emit.enderEmit.cMun);
                nfeSelected.emitente.nomeMunicipio   = nfeProc.NFe.infNFe.emit.enderEmit.xMun;
                nfeSelected.emitente.uf                  = nfeProc.NFe.infNFe.emit.enderEmit.UF.ToString();
                nfeSelected.emitente.cep                 = nfeProc.NFe.infNFe.emit.enderEmit.CEP;
                nfeSelected.emitente.codigoPais          = 55;
                nfeSelected.emitente.nomePais            = "Brasil";
                nfeSelected.emitente.telefone            = nfeProc.NFe.infNFe.emit.enderEmit.fone;
                nfeSelected.emitente.crt                 = nfeProc.NFe.infNFe.emit.CRT.ToString().Replace("Item", "");
                nfeSelected.emitente.inscricaoEstadual   = nfeProc.NFe.infNFe.emit.IE;
                nfeSelected.emitente.inscricaoEstadualSt = nfeProc.NFe.infNFe.emit.IEST;
                nfeSelected.emitente.razaoSocial         = nfeProc.NFe.infNFe.emit.xNome;
                nfeSelected.emitente.fantasia            = nfeProc.NFe.infNFe.emit.xFant;
                nfeSelected.emitente.cpfCnpj             = nfeProc.NFe.infNFe.emit.Item;

                nfeSelected.informacoesAddFisco        = nfeProc.NFe.infNFe.infAdic.infAdFisco;
                nfeSelected.informacoesAddContribuinte = nfeProc.NFe.infNFe.infAdic.infCpl;

                using (ServicoEstoqueClient serv = new ServicoEstoqueClient())
                {
                    foreach (TNFeInfNFeDet detalhe in nfeProc.NFe.infNFe.det)
                    {
                        NFeDetalheDTO nfeDet = new NFeDetalheDTO();
                        nfeDet.gtin                   = detalhe.prod.cEAN;
                        nfeDet.nomeProduto            = detalhe.prod.xProd;
                        nfeDet.valorTotal             = decimal.Parse(detalhe.prod.vProd);
                        nfeDet.valorUnitarioComercial = decimal.Parse(detalhe.prod.vUnCom);
                        nfeDet.quantidadeComercial    = decimal.Parse(detalhe.prod.qCom);

                        nfeSelected.listaDetalhe.Add(nfeDet);

                        List <ProdutoDTO> listaProd = serv.selectProduto(new ProdutoDTO {
                            gtin = nfeDet.gtin
                        });

                        if (listaProd != null && listaProd.Count > 0)
                        {
                            nfeDet.idProduto = listaProd.First().id;
                        }
                        else
                        {
                            throw new Exception("Produto não localizado, efetue o cadastramento: " + nfeDet.gtin + " - " + nfeDet.nomeProduto);
                        }
                    }
                }

                nfeSelected.baseCalculoIcms         = decimal.Parse(nfeProc.NFe.infNFe.total.ICMSTot.vBC);
                nfeSelected.valorIcms               = decimal.Parse(nfeProc.NFe.infNFe.total.ICMSTot.vICMS);
                nfeSelected.baseCalculoIcmsSt       = decimal.Parse(nfeProc.NFe.infNFe.total.ICMSTot.vBCST);
                nfeSelected.valorIcmsSt             = decimal.Parse(nfeProc.NFe.infNFe.total.ICMSTot.vST);
                nfeSelected.valorCofins             = decimal.Parse(nfeProc.NFe.infNFe.total.ICMSTot.vCOFINS);
                nfeSelected.valorTotalProdutos      = decimal.Parse(nfeProc.NFe.infNFe.total.ICMSTot.vProd);
                nfeSelected.valorFrete              = decimal.Parse(nfeProc.NFe.infNFe.total.ICMSTot.vFrete);
                nfeSelected.valorSeguro             = decimal.Parse(nfeProc.NFe.infNFe.total.ICMSTot.vSeg);
                nfeSelected.valorDespesasAcessorias = decimal.Parse(nfeProc.NFe.infNFe.total.ICMSTot.vOutro);
                nfeSelected.valorPis      = decimal.Parse(nfeProc.NFe.infNFe.total.ICMSTot.vPIS);
                nfeSelected.valorDesconto = decimal.Parse(nfeProc.NFe.infNFe.total.ICMSTot.vDesc);
                nfeSelected.valorTotal    = decimal.Parse(nfeProc.NFe.infNFe.total.ICMSTot.vNF);

                contentPresenterTabDados.Content = new NFeDados();
                isSelectedTabDados = true;
                notifyPropertyChanged("isSelectedTabDados");

                return(true);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Пример #6
0
 public IList <NFeCabecalhoDTO> selectNFeCabecalho(DateTime dataInicio, DateTime dataFim, NFeCabecalhoDTO nfeCabecalho)
 {
     try
     {
         dataInicio = dataInicio.Date;
         dataFim    = dataFim.Date.AddDays(1).AddSeconds(-1);
         IList <NFeCabecalhoDTO> resultado = new List <NFeCabecalhoDTO>();
         using (ISession session = NHibernateHelper.getSessionFactory().OpenSession())
         {
             Example example = Example.Create(nfeCabecalho).EnableLike(MatchMode.Anywhere).IgnoreCase().ExcludeNulls().ExcludeZeroes();
             resultado = session.CreateCriteria(typeof(NFeCabecalhoDTO)).Add(example).Add(Expression.Between("dataEmissao", dataInicio, dataFim)).List <NFeCabecalhoDTO>();
         }
         return(resultado);
     }
     catch (Exception ex)
     {
         throw new FaultException(ex.Message);
     }
 }