Esempio n. 1
0
 public ViewTributacaoIcmsDTO selectViewTributacaoIcms(ViewTributacaoIcmsDTO viewTributacaoIcms)
 {
     try
     {
         ViewTributacaoIcmsDTO resultado = null;
         using (ISession session = NHibernateHelper.getSessionFactory().OpenSession())
         {
             NHibernateDAL <ViewTributacaoIcmsDTO> DAL = new NHibernateDAL <ViewTributacaoIcmsDTO>(session);
             resultado = DAL.selectObjeto(viewTributacaoIcms);
         }
         return(resultado);
     }
     catch (Exception ex)
     {
         throw new FaultException(ex.Message + (ex.InnerException != null ? " " + ex.InnerException.Message : ""));
     }
 }
Esempio n. 2
0
        public void incluirProduto(decimal quantidade)
        {
            // Cálculos serão apurados no segundo ciclo após novo levantamento de requisitos da Tributação

            try
            {
                if (produtoSelected == null)
                {
                    throw new Exception("Selecione o produto.");
                }

                if (nfeSelected.listaDetalhe == null)
                {
                    nfeSelected.listaDetalhe = new List <NFeDetalheDTO>();
                }

                detalheNFe.idProduto               = produtoSelected.id;
                detalheNFe.codigoProduto           = produtoSelected.gtin;
                detalheNFe.gtin                    = produtoSelected.gtin;
                detalheNFe.valorBrutoProduto       = quantidade * produtoSelected.valorVenda;
                detalheNFe.gtinUnidadeTributavel   = produtoSelected.gtin;
                detalheNFe.quantidadeTributavel    = quantidade;
                detalheNFe.valorUnitarioTributavel = produtoSelected.valorVenda;
                detalheNFe.nomeProduto             = produtoSelected.nome;
                detalheNFe.quantidadeComercial     = quantidade;
                detalheNFe.valorUnitarioComercial  = produtoSelected.valorVenda;
                detalheNFe.valorSubtotal           = quantidade * produtoSelected.valorVenda;
                detalheNFe.valorTotal              = quantidade * produtoSelected.valorVenda;
                detalheNFe.ncm = produtoSelected.ncm;
                detalheNFe.unidadeComercial  = produtoSelected.UnidadeProduto.Sigla;
                detalheNFe.unidadeTributavel = produtoSelected.UnidadeProduto.Sigla;

                // ICMS
                ViewTributacaoIcmsDTO viewIcms = new ViewTributacaoIcmsDTO();
                using (ServicoEstoqueClient serv = new ServicoEstoqueClient())
                {
                    viewIcms.IdTributOperacaoFiscal  = nfeSelected.TributOperacaoFiscal.Id;
                    viewIcms.IdTributGrupoTributario = produtoSelected.TributGrupoTributario.Id;
                    viewIcms.UfDestino = nfeSelected.destinatario.uf;
                    viewIcms           = serv.selectViewTributacaoIcms(viewIcms);

                    if (viewIcms == null)
                    {
                        throw new Exception("Não existe tributação definida para o para o produto selecionado.");
                    }
                }
                detalheNFe.cfop        = viewIcms.Cfop;
                detalheNFe.impostoIcms = new NfeDetalheImpostoIcmsDTO();
                detalheNFe.impostoIcms.OrigemMercadoria          = viewIcms.OrigemMercadoria;
                detalheNFe.impostoIcms.CstIcms                   = viewIcms.CstB;
                detalheNFe.impostoIcms.Csosn                     = viewIcms.CsosnB;
                detalheNFe.impostoIcms.ModalidadeBcIcms          = viewIcms.ModalidadeBc;
                detalheNFe.impostoIcms.TaxaReducaoBcIcms         = viewIcms.PorcentoBc;
                detalheNFe.impostoIcms.AliquotaIcms              = viewIcms.Aliquota;
                detalheNFe.impostoIcms.ModalidadeBcIcmsSt        = viewIcms.ModalidadeBcSt;
                detalheNFe.impostoIcms.PercentualMvaIcmsSt       = viewIcms.Mva;
                detalheNFe.impostoIcms.PercentualReducaoBcIcmsSt = viewIcms.PorcentoBcSt;
                detalheNFe.impostoIcms.AliquotaIcmsSt            = viewIcms.AliquotaIcmsSt;
                detalheNFe.impostoIcms.BaseCalculoIcms           = produtoSelected.valorVenda;
                detalheNFe.impostoIcms.ValorIcms                 = (produtoSelected.valorVenda * viewIcms.Aliquota) / 100;



                ViewTributacaoPisDTO viewPis = new ViewTributacaoPisDTO();
                using (ServicoEstoqueClient serv = new ServicoEstoqueClient())
                {
                    viewPis.IdTributOperacaoFiscal  = nfeSelected.TributOperacaoFiscal.Id;
                    viewPis.IdTributGrupoTributario = produtoSelected.TributGrupoTributario.Id;
                    viewPis = serv.selectViewTributacaoPis(viewPis);

                    detalheNFe.impostoPis = new NfeDetalheImpostoPisDTO();

                    detalheNFe.impostoPis.CstPis = viewPis.CstPis;
                    detalheNFe.impostoPis.AliquotaPisPercentual = viewPis.AliquotaPorcento;
                    detalheNFe.impostoPis.AliquotaPisReais      = viewPis.AliquotaUnidade;
                    detalheNFe.impostoPis.ValorBaseCalculoPis   = produtoSelected.valorVenda;
                    detalheNFe.impostoPis.ValorPis = (produtoSelected.valorVenda * viewPis.AliquotaPorcento) / 100;;
                }

                ViewTributacaoCofinsDTO viewCofins = new ViewTributacaoCofinsDTO();
                using (ServicoEstoqueClient serv = new ServicoEstoqueClient())
                {
                    viewCofins.IdTributOperacaoFiscal  = nfeSelected.TributOperacaoFiscal.Id;
                    viewCofins.IdTributGrupoTributario = produtoSelected.TributGrupoTributario.Id;
                    viewCofins = serv.selectViewTributacaoCofins(viewCofins);

                    detalheNFe.impostoCofins = new NfeDetalheImpostoCofinsDTO();

                    detalheNFe.impostoCofins.CstCofins = viewCofins.CstCofins;
                    detalheNFe.impostoCofins.AliquotaCofinsPercentual = viewCofins.AliquotaPorcento;
                    detalheNFe.impostoCofins.AliquotaCofinsReais      = viewCofins.AliquotaUnidade;
                    detalheNFe.impostoCofins.BaseCalculoCofins        = produtoSelected.valorVenda;
                    detalheNFe.impostoCofins.ValorCofins = (produtoSelected.valorVenda * viewCofins.AliquotaPorcento) / 100;;
                }

                nfeSelected.listaDetalhe.Add(detalheNFe);

                atualizarNumeroItemDetalhe();
                atualizarValoresNFe();

                produtoSelected = null;
                detalheNFe      = null;

                notifyPropertyChanged("produtoSelected");
                notifyPropertyChanged("detalheNFe");
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Esempio n. 3
0
        public void IncluirProduto(decimal quantidade)
        {
            // Exercício: Implemente os cálculos de imposto

            try
            {
                if (ProdutoSelected == null)
                {
                    throw new Exception("Selecione o produto.");
                }

                if (NFeSelected.ListaNfeDetalhe == null)
                {
                    NFeSelected.ListaNfeDetalhe = new List <NfeDetalheDTO>();
                }

                DetalheNFe.IdProduto               = ProdutoSelected.Id;
                DetalheNFe.CodigoProduto           = ProdutoSelected.Gtin;
                DetalheNFe.Gtin                    = ProdutoSelected.Gtin;
                DetalheNFe.ValorBrutoProduto       = quantidade * ProdutoSelected.ValorVenda;
                DetalheNFe.GtinUnidadeTributavel   = ProdutoSelected.Gtin;
                DetalheNFe.QuantidadeTributavel    = quantidade;
                DetalheNFe.ValorUnitarioTributavel = ProdutoSelected.ValorVenda;
                DetalheNFe.NomeProduto             = ProdutoSelected.Nome;
                DetalheNFe.QuantidadeComercial     = quantidade;
                DetalheNFe.ValorUnitarioComercial  = ProdutoSelected.ValorVenda;
                DetalheNFe.ValorSubtotal           = quantidade * ProdutoSelected.ValorVenda;
                DetalheNFe.ValorTotal              = quantidade * ProdutoSelected.ValorVenda;
                DetalheNFe.Ncm = ProdutoSelected.Ncm;
                DetalheNFe.UnidadeComercial  = ProdutoSelected.UnidadeProduto.Sigla;
                DetalheNFe.UnidadeTributavel = ProdutoSelected.UnidadeProduto.Sigla;

                // ICMS
                ViewTributacaoIcmsDTO viewIcms = new ViewTributacaoIcmsDTO();
                using (ServidorClient serv = new ServidorClient())
                {
                    viewIcms.IdTributOperacaoFiscal  = NFeSelected.TributOperacaoFiscal.Id;
                    viewIcms.IdTributGrupoTributario = ProdutoSelected.TributGrupoTributario.Id;
                    viewIcms.UfDestino = NFeSelected.NfeDestinatario.Uf;
                    viewIcms           = serv.SelectViewTributacaoIcms(viewIcms);

                    if (viewIcms == null)
                    {
                        throw new Exception("Não existe tributação definida para o para o produto selecionado.");
                    }
                }
                DetalheNFe.Cfop = viewIcms.Cfop;
                DetalheNFe.NfeDetalheImpostoIcms = new NfeDetalheImpostoIcmsDTO();
                DetalheNFe.NfeDetalheImpostoIcms.OrigemMercadoria  = int.Parse(viewIcms.OrigemMercadoria);
                DetalheNFe.NfeDetalheImpostoIcms.CstIcms           = viewIcms.CstB;
                DetalheNFe.NfeDetalheImpostoIcms.Csosn             = viewIcms.CsosnB;
                DetalheNFe.NfeDetalheImpostoIcms.ModalidadeBcIcms  = int.Parse(viewIcms.ModalidadeBc);
                DetalheNFe.NfeDetalheImpostoIcms.TaxaReducaoBcIcms = viewIcms.PorcentoBc;
                DetalheNFe.NfeDetalheImpostoIcms.AliquotaIcms      = viewIcms.Aliquota;
                //DetalheNFe.NfeDetalheImpostoIcms.ModalidadeBcIcmsSt = int.Parse(viewIcms.ModalidadeBcSt);
                DetalheNFe.NfeDetalheImpostoIcms.PercentualMvaIcmsSt       = viewIcms.Mva;
                DetalheNFe.NfeDetalheImpostoIcms.PercentualReducaoBcIcmsSt = viewIcms.PorcentoBcSt;
                DetalheNFe.NfeDetalheImpostoIcms.AliquotaIcmsSt            = viewIcms.AliquotaIcmsSt;
                DetalheNFe.NfeDetalheImpostoIcms.BaseCalculoIcms           = ProdutoSelected.ValorVenda;
                DetalheNFe.NfeDetalheImpostoIcms.ValorIcms = (ProdutoSelected.ValorVenda * viewIcms.Aliquota) / 100;



                ViewTributacaoPisDTO viewPis = new ViewTributacaoPisDTO();
                using (ServidorClient serv = new ServidorClient())
                {
                    viewPis.IdTributOperacaoFiscal  = NFeSelected.TributOperacaoFiscal.Id;
                    viewPis.IdTributGrupoTributario = ProdutoSelected.TributGrupoTributario.Id;
                    viewPis = serv.SelectViewTributacaoPis(viewPis);

                    DetalheNFe.NfeDetalheImpostoPis = new NfeDetalheImpostoPisDTO();

                    DetalheNFe.NfeDetalheImpostoPis.CstPis = viewPis.CstPis;
                    DetalheNFe.NfeDetalheImpostoPis.AliquotaPisPercentual = viewPis.AliquotaPorcento;
                    DetalheNFe.NfeDetalheImpostoPis.AliquotaPisReais      = viewPis.AliquotaUnidade;
                    DetalheNFe.NfeDetalheImpostoPis.ValorBaseCalculoPis   = ProdutoSelected.ValorVenda;
                    DetalheNFe.NfeDetalheImpostoPis.ValorPis = (ProdutoSelected.ValorVenda * viewPis.AliquotaPorcento) / 100;;
                }

                ViewTributacaoCofinsDTO viewCofins = new ViewTributacaoCofinsDTO();
                using (ServidorClient serv = new ServidorClient())
                {
                    viewCofins.IdTributOperacaoFiscal  = NFeSelected.TributOperacaoFiscal.Id;
                    viewCofins.IdTributGrupoTributario = ProdutoSelected.TributGrupoTributario.Id;
                    viewCofins = serv.SelectViewTributacaoCofins(viewCofins);

                    DetalheNFe.NfeDetalheImpostoCofins = new NfeDetalheImpostoCofinsDTO();

                    DetalheNFe.NfeDetalheImpostoCofins.CstCofins = viewCofins.CstCofins;
                    DetalheNFe.NfeDetalheImpostoCofins.AliquotaCofinsPercentual = viewCofins.AliquotaPorcento;
                    DetalheNFe.NfeDetalheImpostoCofins.AliquotaCofinsReais      = viewCofins.AliquotaUnidade;
                    DetalheNFe.NfeDetalheImpostoCofins.BaseCalculoCofins        = ProdutoSelected.ValorVenda;
                    DetalheNFe.NfeDetalheImpostoCofins.ValorCofins = (ProdutoSelected.ValorVenda * viewCofins.AliquotaPorcento) / 100;;
                }

                NFeSelected.ListaNfeDetalhe.Add(DetalheNFe);

                AtualizarNumeroItemDetalhe();
                AtualizarValoresNFe();

                ProdutoSelected = null;
                DetalheNFe      = null;

                notifyPropertyChanged("ProdutoSelected");
                notifyPropertyChanged("DetalheNFe");
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Esempio n. 4
0
        public void IncluirProduto(decimal quantidade)
        {
            // Exercício: Implemente os cálculos de imposto

            try
            {
                if (ProdutoSelected == null)
                {
                    throw new Exception("Selecione o produto.");
                }

                /*
                 * EXERCÍCIO: Analise e corrija o que for necessário.
                 *    if (NFeSelected.NFE_DETALHE == null)
                 *        NFeSelected.NFE_DETALHE = new List<NFE_DETALHE>();
                 */
                DetalheNFe.ID_PRODUTO                = ProdutoSelected.Id;
                DetalheNFe.CODIGO_PRODUTO            = ProdutoSelected.Gtin;
                DetalheNFe.GTIN                      = ProdutoSelected.Gtin;
                DetalheNFe.VALOR_BRUTO_PRODUTO       = quantidade * ProdutoSelected.ValorVenda;
                DetalheNFe.GTIN_UNIDADE_TRIBUTAVEL   = ProdutoSelected.Gtin;
                DetalheNFe.QUANTIDADE_TRIBUTAVEL     = quantidade;
                DetalheNFe.VALOR_UNITARIO_TRIBUTAVEL = ProdutoSelected.ValorVenda;
                DetalheNFe.NOME_PRODUTO              = ProdutoSelected.Nome;
                DetalheNFe.QUANTIDADE_COMERCIAL      = quantidade;
                DetalheNFe.VALOR_UNITARIO_COMERCIAL  = ProdutoSelected.ValorVenda;
                DetalheNFe.VALOR_SUBTOTAL            = quantidade * ProdutoSelected.ValorVenda;
                DetalheNFe.VALOR_TOTAL               = quantidade * ProdutoSelected.ValorVenda;
                DetalheNFe.NCM = ProdutoSelected.Ncm;
                DetalheNFe.UNIDADE_COMERCIAL  = ProdutoSelected.UnidadeProduto.Sigla;
                DetalheNFe.UNIDADE_TRIBUTAVEL = ProdutoSelected.UnidadeProduto.Sigla;

                // ICMS
                ViewTributacaoIcmsDTO viewIcms = new ViewTributacaoIcmsDTO();
                using (ServidorClient serv = new ServidorClient())
                {
                    viewIcms.IdTributOperacaoFiscal  = NFeSelected.TRIBUT_OPERACAO_FISCAL.ID;
                    viewIcms.IdTributGrupoTributario = ProdutoSelected.TributGrupoTributario.Id;
                    viewIcms.UfDestino = NFeSelected.NFE_DESTINATARIO[0].UF;
                    viewIcms           = serv.SelectViewTributacaoIcms(viewIcms);

                    if (viewIcms == null)
                    {
                        throw new Exception("Não existe tributação definida para o para o produto selecionado.");
                    }
                }
                DetalheNFe.CFOP = viewIcms.Cfop;

                /*
                 * EXERCÍCIO: Analise e corrija o que for necessário.
                 *    DetalheNFe.NFE_DETALHE_IMPOSTO_ICMS[0] = new NfeDetalheImpostoIcmsDTO();
                 */
                DetalheNFe.NFE_DETALHE_IMPOSTO_ICMS[0].ORIGEM_MERCADORIA    = int.Parse(viewIcms.OrigemMercadoria);
                DetalheNFe.NFE_DETALHE_IMPOSTO_ICMS[0].CST_ICMS             = viewIcms.CstB;
                DetalheNFe.NFE_DETALHE_IMPOSTO_ICMS[0].CSOSN                = viewIcms.CsosnB;
                DetalheNFe.NFE_DETALHE_IMPOSTO_ICMS[0].MODALIDADE_BC_ICMS   = int.Parse(viewIcms.ModalidadeBc);
                DetalheNFe.NFE_DETALHE_IMPOSTO_ICMS[0].TAXA_REDUCAO_BC_ICMS = viewIcms.PorcentoBc;
                DetalheNFe.NFE_DETALHE_IMPOSTO_ICMS[0].ALIQUOTA_ICMS        = viewIcms.Aliquota;
                //DetalheNFe.NFE_DETALHE_IMPOSTO_ICMS[0].ModalidadeBcIcmsSt = int.Parse(viewIcms.ModalidadeBcSt);
                DetalheNFe.NFE_DETALHE_IMPOSTO_ICMS[0].PERCENTUAL_MVA_ICMS_ST        = viewIcms.Mva;
                DetalheNFe.NFE_DETALHE_IMPOSTO_ICMS[0].PERCENTUAL_REDUCAO_BC_ICMS_ST = viewIcms.PorcentoBcSt;
                DetalheNFe.NFE_DETALHE_IMPOSTO_ICMS[0].ALIQUOTA_ICMS_ST  = viewIcms.AliquotaIcmsSt;
                DetalheNFe.NFE_DETALHE_IMPOSTO_ICMS[0].BASE_CALCULO_ICMS = ProdutoSelected.ValorVenda;
                DetalheNFe.NFE_DETALHE_IMPOSTO_ICMS[0].VALOR_ICMS        = (ProdutoSelected.ValorVenda * viewIcms.Aliquota) / 100;



                ViewTributacaoPisDTO viewPis = new ViewTributacaoPisDTO();
                using (ServidorClient serv = new ServidorClient())
                {
                    viewPis.IdTributOperacaoFiscal  = NFeSelected.TRIBUT_OPERACAO_FISCAL.ID;
                    viewPis.IdTributGrupoTributario = ProdutoSelected.TributGrupoTributario.Id;
                    viewPis = serv.SelectViewTributacaoPis(viewPis);

                    /*
                     * EXERCÍCIO: Analise e corrija o que for necessário.
                     *        DetalheNFe.NfeDetalheImpostoPis = new NfeDetalheImpostoPisDTO();
                     */
                    DetalheNFe.NFE_DETALHE_IMPOSTO_PIS[0].CST_PIS = viewPis.CstPis;
                    DetalheNFe.NFE_DETALHE_IMPOSTO_PIS[0].ALIQUOTA_PIS_PERCENTUAL = viewPis.AliquotaPorcento;
                    DetalheNFe.NFE_DETALHE_IMPOSTO_PIS[0].ALIQUOTA_PIS_REAIS      = viewPis.AliquotaUnidade;
                    DetalheNFe.NFE_DETALHE_IMPOSTO_PIS[0].VALOR_BASE_CALCULO_PIS  = ProdutoSelected.ValorVenda;
                    DetalheNFe.NFE_DETALHE_IMPOSTO_PIS[0].VALOR_PIS = (ProdutoSelected.ValorVenda * viewPis.AliquotaPorcento) / 100;;
                }

                ViewTributacaoCofinsDTO viewCofins = new ViewTributacaoCofinsDTO();
                using (ServidorClient serv = new ServidorClient())
                {
                    viewCofins.IdTributOperacaoFiscal  = NFeSelected.TRIBUT_OPERACAO_FISCAL.ID;
                    viewCofins.IdTributGrupoTributario = ProdutoSelected.TributGrupoTributario.Id;
                    viewCofins = serv.SelectViewTributacaoCofins(viewCofins);

                    /*
                     * EXERCÍCIO: Analise e corrija o que for necessário.
                     *            DetalheNFe.NfeDetalheImpostoCofins = new NfeDetalheImpostoCofinsDTO();
                     */
                    DetalheNFe.NFE_DETALHE_IMPOSTO_COFINS[0].CST_COFINS = viewCofins.CstCofins;
                    DetalheNFe.NFE_DETALHE_IMPOSTO_COFINS[0].ALIQUOTA_COFINS_PERCENTUAL = viewCofins.AliquotaPorcento;
                    DetalheNFe.NFE_DETALHE_IMPOSTO_COFINS[0].ALIQUOTA_COFINS_REAIS      = viewCofins.AliquotaUnidade;
                    DetalheNFe.NFE_DETALHE_IMPOSTO_COFINS[0].BASE_CALCULO_COFINS        = ProdutoSelected.ValorVenda;
                    DetalheNFe.NFE_DETALHE_IMPOSTO_COFINS[0].VALOR_COFINS = (ProdutoSelected.ValorVenda * viewCofins.AliquotaPorcento) / 100;;
                }

                NFeSelected.NFE_DETALHE.Add(DetalheNFe);

                AtualizarNumeroItemDetalhe();
                AtualizarValoresNFe();

                ProdutoSelected = null;
                DetalheNFe      = null;

                notifyPropertyChanged("ProdutoSelected");
                notifyPropertyChanged("DetalheNFe");
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }