コード例 #1
0
 public static void CalcValorImpostoSubst(TRegistro_ImpostosNF val,
                                          decimal Vl_TotalNota,
                                          bool st_reducaobasecalcSubstFocus)
 {
     //Calcular Vl_ICMS
     if (val.Pc_reducaobasecalcsubsttrib > 0)
     {
         val.Vl_impostosubsttrib = Vl_TotalNota * ((100 - val.Pc_reducaobasecalcsubsttrib) / 100) * (val.Pc_aliquotasubst / 100);
     }
     else
     {
         val.Vl_impostosubsttrib = val.Vl_basecalcsubsttrib * 1 * (val.Pc_aliquotasubst / 100);
     }
     if (st_reducaobasecalcSubstFocus)
     {
         if ((val.Vl_basecalcsubsttrib > 0) && (val.Vl_basecalcsubsttrib <= Vl_TotalNota))
         {
             val.Vl_basecalcsubsttrib = (Vl_TotalNota * (1 - (val.Pc_reducaobasecalcsubsttrib / 100)));
         }
         else
         if (Vl_TotalNota > 0)
         {
             if (val.Vl_basecalcsubsttrib <= Vl_TotalNota)
             {
                 val.Pc_reducaobasecalcsubsttrib = 100 - ((val.Vl_basecalcsubsttrib * 100) / (Vl_TotalNota));
             }
             else
             {
                 val.Pc_reducaobasecalcsubsttrib = decimal.Zero;
             }
         }
     }
 }
コード例 #2
0
 public static void CalcValorImposto(TRegistro_ImpostosNF val,
                                     decimal Vl_TotalNota,
                                     bool st_reducaobasecalcfocus)
 {
     //Calcular valor do imposto
     if (val.Pc_reducaobasecalc > 0)
     {
         val.Vl_impostocalc   = (Vl_TotalNota * ((100 - Math.Round(val.Pc_reducaobasecalc, 2)) / 100)) * ((Math.Round(val.Pc_aliquota, 2) - (Math.Round(val.Pc_aliquota, 2) * (Math.Round(val.Pc_reducaoaliquota, 2) / 100)) - Math.Round(val.Pc_retencao, 2)) / 100);
         val.Vl_impostoretido = (Vl_TotalNota * ((100 - Math.Round(val.Pc_reducaobasecalc, 2)) / 100)) * ((Math.Round(val.Pc_retencao, 2) - (Math.Round(val.Pc_retencao, 2) * (Math.Round(val.Pc_reducaoaliquota, 2) / 100))) / 100);
     }
     else
     {
         val.Vl_impostocalc   = val.Vl_basecalc * ((Math.Round(val.Pc_aliquota, 2) - (Math.Round(val.Pc_aliquota, 2) * (Math.Round(val.Pc_reducaoaliquota, 2) / 100)) - Math.Round(val.Pc_retencao, 2)) / 100);
         val.Vl_impostoretido = val.Vl_basecalc * ((Math.Round(val.Pc_retencao, 2) - (Math.Round(val.Pc_retencao, 2) * (Math.Round(val.Pc_reducaoaliquota, 2) / 100))) / 100);
     }
     if (st_reducaobasecalcfocus)
     {
         if ((val.Vl_basecalc > 0) && (val.Vl_basecalc <= Vl_TotalNota))
         {
             val.Vl_basecalc = (Vl_TotalNota * (1 - (val.Pc_reducaobasecalc / 100)));
         }
         else
         if ((Vl_TotalNota > 0) && (val.Vl_basecalc > 0))
         {
             if (val.Vl_basecalc <= Vl_TotalNota)
             {
                 val.Pc_reducaobasecalc = 100 - ((val.Vl_basecalc * 100) / (Vl_TotalNota));
             }
             else
             {
                 val.Pc_reducaobasecalc = decimal.Zero;
             }
         }
     }
 }
コード例 #3
0
        public static string Excluir(TRegistro_ImpostosNF val, BancoDados.TObjetoBanco banco)
        {
            bool           st_transacao = false;
            TCD_ImpostosNF qtb_imp      = new TCD_ImpostosNF();

            try
            {
                if (banco == null)
                {
                    st_transacao = qtb_imp.CriarBanco_Dados(true);
                }
                else
                {
                    qtb_imp.Banco_Dados = banco;
                }
                qtb_imp.Excluir(val);
                if (st_transacao)
                {
                    qtb_imp.Banco_Dados.Commit_Tran();
                }
                return("OK");
            }
            catch (Exception ex)
            {
                if (st_transacao)
                {
                    qtb_imp.Banco_Dados.RollBack_Tran();
                }
                throw new Exception("Erro excluir impostos: " + ex.Message.Trim());
            }
            finally
            {
                if (st_transacao)
                {
                    qtb_imp.deletarBanco_Dados();
                }
            }
        }
コード例 #4
0
        public static string Gravar(TRegistro_ImpostosNF val, BancoDados.TObjetoBanco banco)
        {
            bool           st_transacao = false;
            TCD_ImpostosNF qtb_imp      = new TCD_ImpostosNF();

            try
            {
                if (banco == null)
                {
                    st_transacao = qtb_imp.CriarBanco_Dados(true);
                }
                else
                {
                    qtb_imp.Banco_Dados = banco;
                }
                string retorno = qtb_imp.Gravar(val);
                //Gravar Contabilidade Imposto Calculado
                //if (val.Vl_impostocalc > decimal.Zero && val.Nr_lanctofiscal != null)
                //{
                //    List<CamadaDados.Contabil.TRegistro_ProcImpostos> lProcImpCalc =
                //    CamadaNegocio.Contabil.TCN_Lan_ProcContabil.BuscarProc_Impostos(val.Cd_empresa,
                //                                                                    val.Nr_lanctofiscal.Value.ToString(),
                //                                                                    string.Empty,
                //                                                                    string.Empty,
                //                                                                    val.Cd_impostostr,
                //                                                                    string.Empty,
                //                                                                    string.Empty,
                //                                                                    string.Empty,
                //                                                                    string.Empty,
                //                                                                    string.Empty,
                //                                                                    string.Empty,
                //                                                                    string.Empty,
                //                                                                    decimal.Zero,
                //                                                                    decimal.Zero,
                //                                                                    false,
                //                                                                    qtb_imp.Banco_Dados);
                //    if (lProcImpCalc.Count > 0)
                //        if (lProcImpCalc.Exists(p => p.Cd_contactb_deb.HasValue && p.Cd_contactb_cred.HasValue))
                //            CamadaNegocio.Contabil.TCN_LanContabil.ProcessaCTB_Impostos(lProcImpCalc.FindAll(p => p.Cd_contactb_cred.HasValue && p.Cd_contactb_deb.HasValue), qtb_imp.Banco_Dados);
                //}
                ////Gravar Contabilidade Imposto Retido
                //if (val.Vl_impostoretido > decimal.Zero && val.Nr_lanctofiscal != null)
                //{
                //    List<CamadaDados.Contabil.TRegistro_ProcImpostos> lProcImpRet =
                //        CamadaNegocio.Contabil.TCN_Lan_ProcContabil.BuscarProc_Impostos(val.Cd_empresa,
                //                                                                        val.Nr_lanctofiscal.Value.ToString(),
                //                                                                        string.Empty,
                //                                                                        string.Empty,
                //                                                                        val.Cd_impostostr,
                //                                                                        string.Empty,
                //                                                                        string.Empty,
                //                                                                        string.Empty,
                //                                                                        string.Empty,
                //                                                                        string.Empty,
                //                                                                        string.Empty,
                //                                                                        string.Empty,
                //                                                                        decimal.Zero,
                //                                                                        decimal.Zero,
                //                                                                        false,
                //                                                                        qtb_imp.Banco_Dados);
                //    if (lProcImpRet.Count > 0)
                //        if (lProcImpRet.Exists(p => p.Cd_contactb_deb.HasValue && p.Cd_contactb_cred.HasValue))
                //            CamadaNegocio.Contabil.TCN_LanContabil.ProcessaCTB_Impostos(lProcImpRet.FindAll(p => p.Cd_contactb_cred.HasValue && p.Cd_contactb_deb.HasValue), qtb_imp.Banco_Dados);
                //}
                if (st_transacao)
                {
                    qtb_imp.Banco_Dados.Commit_Tran();
                }
                return(retorno);
            }
            catch (Exception ex)
            {
                if (st_transacao)
                {
                    qtb_imp.Banco_Dados.RollBack_Tran();
                }
                throw new Exception("Erro gravar impostos: " + ex.Message.Trim());
            }
            finally
            {
                if (st_transacao)
                {
                    qtb_imp.deletarBanco_Dados();
                }
            }
        }
コード例 #5
0
 private void CalcularImpostos()
 {
     if (string.IsNullOrEmpty(CD_Empresa.Text))
     {
         MessageBox.Show("Obrigatorio informar empresa para simular impostos.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
         CD_Empresa.Focus();
         return;
     }
     if (string.IsNullOrEmpty(CFG_Pedido.Text))
     {
         MessageBox.Show("Obrigatorio informar tipo pedido para simular impostos.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
         CFG_Pedido.Focus();
         return;
     }
     if (Cbx_TP_Fiscal.SelectedValue == null)
     {
         MessageBox.Show("Obrigatorio selecionar tipo fiscal para simular impostos.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
         Cbx_TP_Fiscal.Focus();
         return;
     }
     if (string.IsNullOrEmpty(CD_Clifor.Text))
     {
         MessageBox.Show("Obrigatorio informar cliente/fornecedor para simular impostos.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
         CD_Clifor.Focus();
         return;
     }
     if (string.IsNullOrEmpty(CD_Endereco.Text))
     {
         MessageBox.Show("Obrigatorio informar endereço para simular impostos.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
         CD_Endereco.Focus();
         return;
     }
     if (bsProdutoSimular.Count.Equals(0))
     {
         MessageBox.Show("Obrigatorio informar produto para simular impostos.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
         bb_adicionar.Focus();
         return;
     }
     //Buscar movimentacao comercial do tipo de pedido
     CamadaDados.Faturamento.Cadastros.TList_CadCFGPedidoFiscal lCfgPed =
         new CamadaDados.Faturamento.Cadastros.TCD_CadCFGPedidoFiscal().Select(
             new Utils.TpBusca[]
     {
         new Utils.TpBusca()
         {
             vNM_Campo = "a.cfg_pedido",
             vOperador = "=",
             vVL_Busca = "'" + CFG_Pedido.Text.Trim() + "'"
         },
         new Utils.TpBusca()
         {
             vNM_Campo = "a.tp_fiscal",
             vOperador = "=",
             vVL_Busca = "'" + Cbx_TP_Fiscal.SelectedValue.ToString() + "'"
         }
     }, 1, string.Empty);
     if (lCfgPed.Count < 1)
     {
         MessageBox.Show("Não existe configuração fiscal para o tipo de pedido " + CFG_Pedido.Text.Trim() + ", tipo fiscal " + Cbx_TP_Fiscal.Text + ".",
                         "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
         CFG_Pedido.Focus();
         return;
     }
     CamadaDados.Fiscal.TList_ResumoImposto lResumo = new CamadaDados.Fiscal.TList_ResumoImposto();
     for (int i = 0; i < bsProdutoSimular.Count; i++)
     {
         string retobs = string.Empty;
         (bsProdutoSimular[i] as CamadaDados.Fiscal.TRegistro_ProdutoSimular).lImpProduto =
             CamadaNegocio.Faturamento.NotaFiscal.TCN_LanFaturamento_Item.procuraImpostosPorUf(CD_Empresa.Text,
                                                                                               (TP_Mov.Text.Trim().ToUpper().Equals("E") &&
                                                                                                (Cbx_TP_Fiscal.SelectedValue.ToString().Trim() != "DV") &&
                                                                                                (Cbx_TP_Fiscal.SelectedValue.ToString().Trim() != "DF") ? UF.Text : uf_empresa.Text),
                                                                                               (TP_Mov.Text.Trim().ToUpper().Equals("E") &&
                                                                                                (Cbx_TP_Fiscal.SelectedValue.ToString().Trim() != "DV") &&
                                                                                                (Cbx_TP_Fiscal.SelectedValue.ToString().Trim() != "DF") ? uf_empresa.Text : UF.Text),
                                                                                               lCfgPed[0].Cd_movtostring,
                                                                                               (Cbx_TP_Fiscal.SelectedValue.ToString().Trim().Equals("DV") ||
                                                                                                Cbx_TP_Fiscal.SelectedValue.ToString().Trim().Equals("DF") ?
                                                                                                TP_Mov.Text.Trim().Equals("E") ? "S" : "E" : TP_Mov.Text),
                                                                                               cd_condfiscal_clifor.Text,
                                                                                               (bsProdutoSimular[i] as CamadaDados.Fiscal.TRegistro_ProdutoSimular).Cd_condfiscal_produto,
                                                                                               (bsProdutoSimular[i] as CamadaDados.Fiscal.TRegistro_ProdutoSimular).Vl_subtotal,
                                                                                               (bsProdutoSimular[i] as CamadaDados.Fiscal.TRegistro_ProdutoSimular).Quantidade,
                                                                                               ref retobs,
                                                                                               DateTime.Now,
                                                                                               cd_produto.Text,
                                                                                               string.Empty,
                                                                                               string.Empty,
                                                                                               null);
         (bsProdutoSimular[i] as CamadaDados.Fiscal.TRegistro_ProdutoSimular).lImpProduto.Concat(CamadaNegocio.Faturamento.NotaFiscal.TCN_LanFaturamento_Item.procuraCondicaoFiscalImpostos(cd_condfiscal_clifor.Text,
                                                                                                                                                                                            (bsProdutoSimular[i] as CamadaDados.Fiscal.TRegistro_ProdutoSimular).Cd_condfiscal_produto,
                                                                                                                                                                                            lCfgPed[0].Cd_movtostring,
                                                                                                                                                                                            (Cbx_TP_Fiscal.SelectedValue.ToString().Trim().Equals("DV") ||
                                                                                                                                                                                             Cbx_TP_Fiscal.SelectedValue.ToString().Trim().Equals("DF") ?
                                                                                                                                                                                             TP_Mov.Text.Trim().Equals("E") ? "S" : "E" : TP_Mov.Text),
                                                                                                                                                                                            tp_pessoa.Text,
                                                                                                                                                                                            CD_Empresa.Text,
                                                                                                                                                                                            lCfgPed[0].Nr_serie,
                                                                                                                                                                                            CD_Clifor.Text,
                                                                                                                                                                                            string.Empty,
                                                                                                                                                                                            DateTime.Now,
                                                                                                                                                                                            (bsProdutoSimular[i] as CamadaDados.Fiscal.TRegistro_ProdutoSimular).Quantidade,
                                                                                                                                                                                            (bsProdutoSimular[i] as CamadaDados.Fiscal.TRegistro_ProdutoSimular).Vl_subtotal,
                                                                                                                                                                                            string.Empty,
                                                                                                                                                                                            pCd_municipioexecservico,
                                                                                                                                                                                            null));
         var ipi  = (bsProdutoSimular[i] as CamadaDados.Fiscal.TRegistro_ProdutoSimular).lImpProduto.Find(v => v.Imposto.St_IPI);
         var icms = (bsProdutoSimular[i] as CamadaDados.Fiscal.TRegistro_ProdutoSimular).lImpProduto.Find(v => v.Imposto.St_ICMS);
         if (ipi != null &&
             (icms == null ? false : icms.St_somarIPIBaseICMS || icms.St_somarIPIBaseST))
         {
             TRegistro_ImpostosNF rImp = new TRegistro_ImpostosNF();
             rImp.Cd_imposto                  = icms.Cd_imposto;
             rImp.Pc_aliquota                 = icms.Pc_aliquota;
             rImp.Pc_reducaoaliquota          = icms.Pc_reducaoaliquota;
             rImp.Pc_reducaobasecalc          = icms.Pc_reducaobasecalc;
             rImp.Pc_aliquotasubst            = icms.Pc_aliquotasubst;
             rImp.Pc_reducaobasecalcsubsttrib = icms.Pc_reducaobasecalcsubsttrib;
             rImp.Tp_situacao                 = icms.Tp_situacao;
             rImp.Dt_imposto                  = icms.Dt_imposto;
             rImp.St_impostouf                = 0;
             rImp.Tp_modbasecalc              = icms.Tp_modbasecalc;
             rImp.Tp_modbasecalcST            = icms.Tp_modbasecalcST;
             rImp.Cd_st               = icms.Cd_st;
             rImp.St_substtrib        = icms.St_substtrib;
             rImp.St_simplesnacional  = icms.St_simplesnacional;
             rImp.Pc_iva_st           = icms.Pc_iva_st;
             rImp.Vl_mva              = icms.Vl_mva;
             rImp.Pc_aliquotaICMSDest = icms.Pc_aliquotaICMSDest;
             rImp.Vl_pauta            = icms.Vl_pauta;
             rImp.St_somarIPIBaseICMS = icms.St_somarIPIBaseICMS;
             rImp.St_somarIPIBaseST   = icms.St_somarIPIBaseST;
             rImp.Vl_ipisomar         = ipi.Vl_impostocalc;
             //Calcular Imposto
             CamadaNegocio.Faturamento.NotaFiscal.TCN_LanFaturamento_Item
             .CalcImpostos(rImp,
                           (bsProdutoSimular[i] as CamadaDados.Fiscal.TRegistro_ProdutoSimular).Vl_subtotal,
                           (bsProdutoSimular[i] as CamadaDados.Fiscal.TRegistro_ProdutoSimular).Quantidade,
                           (Cbx_TP_Fiscal.SelectedValue.ToString().Trim().Equals("DV") ||
                            Cbx_TP_Fiscal.SelectedValue.ToString().Trim().Equals("DF") ?
                            TP_Mov.Text.Trim().Equals("E") ? "S" : "E" : TP_Mov.Text));
             //Preencher ICMS Item Nota
             icms.Vl_basecalcsubsttrib = rImp.Vl_basecalcsubsttrib;
             icms.Vl_impostosubsttrib  = rImp.Vl_impostosubsttrib;
         }
         (bsProdutoSimular[i] as CamadaDados.Fiscal.TRegistro_ProdutoSimular).lImpProduto.ForEach(p =>
         {
             if (lResumo.Exists(v => v.Cd_imposto.Trim().Equals(p.Cd_imposto.Value.ToString()) &&
                                v.St_totalnota.Trim().Equals(p.St_totalnota.Trim())))
             {
                 lResumo.Find(v => v.Cd_imposto.Trim().Equals(p.Cd_impostostr.Trim())).Vl_imposto         += p.Vl_impostocalc;
                 lResumo.Find(v => v.Cd_imposto.Trim().Equals(p.Cd_impostostr.Trim())).Vl_impostoretido   += p.Vl_impostoretido;
                 lResumo.Find(v => v.Cd_imposto.Trim().Equals(p.Cd_impostostr.Trim())).Vl_impostosubstrib += p.Vl_impostosubsttrib + p.Vl_FCPST;
             }
             else
             {
                 lResumo.Add(new CamadaDados.Fiscal.TRegistro_ResumoImposto()
                 {
                     Cd_imposto         = p.Cd_impostostr,
                     Ds_imposto         = p.Ds_imposto,
                     Vl_imposto         = p.Vl_impostocalc,
                     Vl_impostoretido   = p.Vl_impostoretido,
                     Vl_impostosubstrib = p.Vl_impostosubsttrib + p.Vl_FCPST,
                     St_totalnota       = p.St_totalnota
                 });
             }
         });
     }
     tot_imposto.Value = lResumo.Sum(p => p.Vl_imposto);
     tot_retido.Value  = lResumo.Sum(p => p.Vl_impostoretido);
     tot_subst.Value   = lResumo.Sum(p => p.Vl_impostosubstrib);
     bsProdutoSimular.ResetBindings(true);
     bsResumoImposto.DataSource = lResumo;
 }