コード例 #1
0
 public static void PreencherCMINota(TRegistro_LanFaturamento val, TObjetoBanco banco)
 {
     //Buscar registro cmi
     CamadaDados.Fiscal.TList_CadCMI lCmi =
         CamadaNegocio.Fiscal.TCN_CadCMI.Busca(val.Cd_cmistring,
                                               string.Empty,
                                               string.Empty,
                                               string.Empty,
                                               string.Empty,
                                               string.Empty,
                                               false,
                                               false,
                                               false,
                                               false,
                                               false,
                                               false,
                                               false,
                                               banco);
     if (lCmi.Count > 0)
     {
         val.Cminf.Clear();
         val.Cminf.Add(
             new TRegistro_LanFaturamento_CMI()
         {
             St_complementar   = lCmi[0].St_complementar,
             St_devolucao      = lCmi[0].St_devolucao,
             St_geraestoque    = lCmi[0].St_geraestoque,
             St_mestra         = lCmi[0].St_mestra,
             St_simplesremessa = lCmi[0].St_simplesremessa,
             St_compdevimposto = lCmi[0].St_compdevimposto,
             St_retorno        = lCmi[0].St_retorno
         });
     }
 }
コード例 #2
0
        private TList_RegLanFaturamento_Item ObservacaoFiscalItemNf(TRegistro_LanFaturamento rNf, decimal Tam_DadosAdic)
        {
            TList_RegLanFaturamento_Item lItens = new TList_RegLanFaturamento_Item();

            rNf.ItensNota.ForEach(p =>
            {
                lItens.Add(p);
                if (p.Observacao_item.Trim() != string.Empty)
                {
                    string[] obs = p.Observacao_item.Trim().Split(new char[] { '\n' });
                    if (Tam_DadosAdic > 0)
                    {
                        foreach (string str in obs)
                        {
                            if (str.Trim() != string.Empty)
                            {
                                if (str.Trim().Length > Convert.ToInt32(Tam_DadosAdic))
                                {
                                    int index        = 0;
                                    int total_copiar = 0;
                                    do
                                    {
                                        total_copiar = (Convert.ToInt32(Tam_DadosAdic) > str.Trim().Substring(index, str.Trim().Length - index).Length ?
                                                        str.Trim().Substring(index, str.Trim().Length - index).Length : Convert.ToInt32(Tam_DadosAdic));
                                        lItens.Add(new TRegistro_LanFaturamento_Item()
                                        {
                                            Ds_produto = str.Trim().Substring(index, total_copiar)
                                        });
                                        index += total_copiar;
                                    }while (index < str.Trim().Length);
                                }
                                else
                                {
                                    lItens.Add(new TRegistro_LanFaturamento_Item()
                                    {
                                        Ds_produto = str
                                    });
                                }
                            }
                        }
                    }
                    else
                    {
                        foreach (string str in obs)
                        {
                            if (str.Trim() != string.Empty)
                            {
                                lItens.Add(new TRegistro_LanFaturamento_Item()
                                {
                                    Ds_produto = str
                                });
                            }
                        }
                    }
                }
            });
            return(lItens);
        }
コード例 #3
0
        public static string GravarFaturamento(TRegistro_LanFaturamento val, TRegistro_LanMudanca rMudanca, BancoDados.TObjetoBanco banco)
        {
            bool           st_transacao = false;
            TCD_LanMudanca qtb_mud      = new TCD_LanMudanca();

            try
            {
                if (banco == null)
                {
                    st_transacao = qtb_mud.CriarBanco_Dados(true);
                }
                else
                {
                    qtb_mud.Banco_Dados = banco;
                }
                //Gravar Nota Fiscal
                CamadaNegocio.Faturamento.NotaFiscal.TCN_LanFaturamento.GravarFaturamento(val, null, qtb_mud.Banco_Dados);
                //Gravar Mudança_X_NFSe
                TCN_Mudanca_X_NFSe.Gravar(
                    new TRegistro_Mudanca_X_NFSe()
                {
                    Cd_empresa      = val.Cd_empresa,
                    Nr_LanctoFiscal = val.Nr_lanctofiscal,
                    Id_mudanca      = rMudanca.Id_mudanca
                }, qtb_mud.Banco_Dados);
                if (st_transacao)
                {
                    qtb_mud.Banco_Dados.Commit_Tran();
                }
                return("OK");
            }
            catch (Exception ex)
            {
                if (st_transacao)
                {
                    qtb_mud.Banco_Dados.RollBack_Tran();
                }
                throw new Exception("Erro gravar faturamento: " + ex.Message.Trim());
            }
            finally
            {
                if (st_transacao)
                {
                    qtb_mud.deletarBanco_Dados();
                }
            }
        }
コード例 #4
0
 private void GerarRemessa(TRegistro_CargaAvulsa rCarga)
 {
     CamadaDados.Diversos.TList_CfgEmpresa lCfgEmpresa =
         CamadaNegocio.Diversos.TCN_CfgEmpresa.Buscar(rCarga.Cd_empresa, null);
     if (lCfgEmpresa.Count.Equals(0))
     {
         MessageBox.Show("Não existe configuração parâmetro Empresa: " + rCarga.Cd_empresa, "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
         return;
     }
     CamadaDados.Faturamento.Pedido.TRegistro_Pedido rPed = null;
     try
     {
         Proc_Commoditties.TProcessaPedidoCargaAvulsa.GerarPedidoCarga(ref rPed,
                                                                       rCarga,
                                                                       lCfgEmpresa[0]);
         CamadaNegocio.Faturamento.Pedido.TCN_Pedido.Grava_Pedido(rPed, null);
         //Buscar pedido
         rPed = CamadaNegocio.Faturamento.Pedido.TCN_Pedido.Busca_Registro_Pedido(rPed.Nr_pedido.ToString(), null);
         //Buscar itens pedido
         CamadaNegocio.Faturamento.Pedido.TCN_Pedido.Busca_Pedido_Itens(rPed, false, null);
         for (int i = 0; i < rCarga.lItens.Count; i++)
         {
             rPed.Pedido_Itens[i].lItensCargaAvulsa.Add(rCarga.lItens[i]);
         }
         //Gerar Nota Fiscal
         TRegistro_LanFaturamento rFat =
             Proc_Commoditties.TProcessaPedFaturar.ProcessaPedFaturar(rPed, false, decimal.Zero);
         //Gravar Nota Fiscal
         TCN_LanFaturamento.GravarFaturamento(rFat, null, null);
         using (srvNFE.TFGerenciarNFe fGerNfe = new srvNFE.TFGerenciarNFe())
         {
             fGerNfe.rNfe = CamadaNegocio.Faturamento.NotaFiscal.TCN_LanFaturamento.BuscarNF(rFat.Cd_empresa,
                                                                                             rFat.Nr_lanctofiscalstr,
                                                                                             null);
             fGerNfe.ShowDialog();
         }
     }
     catch (Exception ex)
     {
         if (rPed != null)
         {
             CamadaNegocio.Faturamento.Pedido.TCN_Pedido.Deleta_Pedido(rPed, null);
         }
         MessageBox.Show(ex.Message.Trim(), "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
     }
 }
コード例 #5
0
        private void Imprime_NotaFiscal(TRegistro_LanFaturamento rNf,
                                        bool St_imprimir,
                                        bool St_visualizar,
                                        bool St_enviaremail,
                                        List <string> Destinatarios,
                                        string Titulo,
                                        string Mensagem)
        {
            LayoutNotaFiscal Relatorio = new LayoutNotaFiscal();

            Relatorio.Imprime_NF(rNf,
                                 St_imprimir,
                                 St_visualizar,
                                 St_enviaremail,
                                 Destinatarios,
                                 Titulo,
                                 Mensagem);
        }
コード例 #6
0
        public static TRegistro_LanFaturamento GerarDevolucao(TRegistro_LanFaturamento rNf)
        {
            CamadaDados.Financeiro.Cadastros.TRegistro_CadClifor Reg_Clifor =
                CamadaNegocio.Financeiro.Cadastros.TCN_CadClifor.Busca_Clifor_Codigo(rNf.Cd_clifor, null);
            #region Nota Fiscal Devolução
            TRegistro_LanFaturamento rNfDev = new TRegistro_LanFaturamento();
            CamadaDados.Faturamento.Cadastros.TList_CadCFGPedidoFiscal lCfgPedido =
                new CamadaDados.Faturamento.Cadastros.TCD_CadCFGPedidoFiscal().Select(
                    new TpBusca[]
            {
                new TpBusca()
                {
                    vNM_Campo = string.Empty,
                    vOperador = "exists",
                    vVL_Busca = "(select 1 from tb_fat_pedido x " +
                                "where x.cfg_pedido = a.cfg_pedido " +
                                "and x.nr_pedido = " + rNf.Nr_pedido.ToString() + ")"
                },
                new TpBusca()
                {
                    vNM_Campo = "a.tp_fiscal",
                    vOperador = "=",
                    vVL_Busca = "'DV'"
                }
            }, 1, string.Empty);

            if (lCfgPedido.Count > 0)
            {
                rNfDev.Cd_empresa           = rNf.Cd_empresa;
                rNfDev.Nr_serie             = lCfgPedido[0].Nr_serie;
                rNfDev.Ds_serienf           = lCfgPedido[0].Ds_serienf;
                rNfDev.Cd_modelo            = lCfgPedido[0].Cd_modelo;
                rNfDev.Cd_movimentacao      = lCfgPedido[0].Cd_movto;
                rNfDev.Cd_cmi               = lCfgPedido[0].Cd_cmi;
                rNfDev.Tp_movimento         = lCfgPedido[0].Tp_movimento.ToUpper().Equals("S") ? "E" : "S";
                rNfDev.Dt_emissao           = CamadaDados.UtilData.Data_Servidor();
                rNfDev.Dt_saient            = CamadaDados.UtilData.Data_Servidor();
                rNfDev.Cd_uf_clifor         = rNf.Cd_uf_clifor;
                rNfDev.Cd_uf_empresa        = rNf.Cd_uf_empresa;
                rNfDev.Cd_condfiscal_clifor = rNf.Cd_condfiscal_clifor;
                rNfDev.rEndereco            = rNf.rEndereco;
                rNfDev.Cd_clifor            = rNf.Cd_clifor;
                rNfDev.Cd_endereco          = rNf.Cd_endereco;
                rNfDev.Nr_pedido            = rNf.Nr_pedido;
                using (TFNumero_Nota fNumero = new TFNumero_Nota())
                {
                    fNumero.Text              = "Dados Nota Fiscal Devolução";
                    fNumero.pCd_empresa       = rNf.Cd_empresa;
                    fNumero.pNm_empresa       = rNf.Nm_empresa;
                    fNumero.pCd_clifor        = rNf.Cd_clifor;
                    fNumero.pNm_clifor        = rNf.Nm_clifor;
                    fNumero.pTp_pessoa        = rNf.Tp_pessoa;
                    fNumero.pNr_serie         = lCfgPedido[0].Nr_serie;
                    fNumero.pDs_serie         = lCfgPedido[0].Ds_serienf;
                    fNumero.pCd_modelo        = lCfgPedido[0].Cd_modelo;
                    fNumero.pTp_movimento     = lCfgPedido[0].Tp_movimento.ToUpper().Equals("S") ? "E" : "S";
                    fNumero.pNr_notafiscal    = string.Empty;
                    fNumero.pDt_emissao       = rNfDev.Dt_emissao;
                    fNumero.pDt_saient        = rNfDev.Dt_saient;
                    fNumero.pSt_sequenciaauto = lCfgPedido[0].ST_SequenciaAuto.Trim().ToUpper().Equals("S");
                    fNumero.pCd_movto         = rNfDev.Cd_movimentacaostring;
                    fNumero.pCd_cmi           = rNfDev.Cd_cmistring;
                    //Buscar insc. estadual origem
                    object obj_inscdestino = new CamadaDados.Financeiro.Cadastros.TCD_CadEndereco().BuscarEscalar(
                        new TpBusca[]
                    {
                        new TpBusca()
                        {
                            vNM_Campo = "a.cd_clifor",
                            vOperador = "=",
                            vVL_Busca = "'" + rNf.Cd_clifor.Trim() + "'"
                        },
                        new TpBusca()
                        {
                            vNM_Campo = "a.cd_endereco",
                            vOperador = "=",
                            vVL_Busca = "'" + rNf.Cd_endereco.Trim() + "'"
                        }
                    }, "a.insc_estadual");
                    if (obj_inscdestino != null)
                    {
                        fNumero.pInsc_estadual = obj_inscdestino.ToString();
                    }
                    fNumero.pTp_nota = (TCN_LanFaturamento.validarST_Nota(fNumero.pTp_movimento, fNumero.pTp_pessoa, Reg_Clifor.St_equiparado_pjbool, Reg_Clifor.St_agropecuariabool).Equals(0) ? "P" : "T");
                    if (fNumero.ShowDialog() == DialogResult.OK)
                    {
                        rNfDev.Nr_serie         = fNumero.pNr_serie;
                        rNfDev.Tp_pessoa        = fNumero.pTp_pessoa;
                        rNfDev.Cd_modelo        = fNumero.pCd_modelo;
                        rNfDev.Tp_movimento     = fNumero.pTp_movimento;
                        rNfDev.Tp_nota          = fNumero.pTp_nota;
                        rNfDev.Dt_emissao       = fNumero.pDt_emissao;
                        rNfDev.Dt_saient        = fNumero.pDt_saient;
                        rNfDev.Obsfiscal        = fNumero.pDs_obsfiscal;
                        rNfDev.Dadosadicionais  = fNumero.pDs_dadosadic;
                        rNfDev.Chave_acesso_nfe = fNumero.pChave_Acesso_NFe;
                        if (!string.IsNullOrEmpty(fNumero.pNr_notafiscal))
                        {
                            rNfDev.Nr_notafiscal = decimal.Parse(fNumero.pNr_notafiscal);
                        }
                        else
                        {
                            rNfDev.Nr_notafiscal = null;
                        }
                        rNfDev.St_sequenciaauto = fNumero.pSt_sequenciaauto;
                        if (rNfDev.Cd_cmistring.Trim() != fNumero.pCd_cmi.Trim())
                        {
                            CamadaDados.Fiscal.TRegistro_CadCMI rCmi =
                                CamadaNegocio.Fiscal.TCN_CadCMI.Busca(fNumero.pCd_cmi,
                                                                      string.Empty,
                                                                      string.Empty,
                                                                      string.Empty,
                                                                      string.Empty,
                                                                      string.Empty,
                                                                      false,
                                                                      false,
                                                                      false,
                                                                      false,
                                                                      false,
                                                                      false,
                                                                      false,
                                                                      null)[0];
                            rNfDev.Cminf.Add(new TRegistro_LanFaturamento_CMI()
                            {
                                St_compdevimposto = rCmi.St_compdevimposto,
                                St_complementar   = rCmi.St_complementar,
                                St_devolucao      = rCmi.St_devolucao,
                                St_geraestoque    = rCmi.St_geraestoque,
                                St_mestra         = rCmi.St_mestra,
                                St_simplesremessa = rCmi.St_simplesremessa,
                                St_retorno        = rCmi.St_retorno
                            });
                            rNfDev.Cd_cmistring   = fNumero.pCd_cmi;
                            rNfDev.Ds_cmi         = rCmi.Ds_cmi;
                            rNfDev.Tp_duplicata   = rCmi.Tp_duplicata;
                            rNfDev.Ds_tpduplicata = rCmi.ds_tpduplicata;
                        }
                        //Dados Frete
                        rNfDev.Cd_transportadora    = fNumero.pCd_transportadora;
                        rNfDev.Nm_razaosocialtransp = fNumero.pNm_transportadora;
                        rNfDev.Cpf_transp           = fNumero.pCnpjCpfTransp;
                        rNfDev.Cd_enderecotransp    = fNumero.pCd_endtransportadora;
                        rNfDev.Especie       = fNumero.pEspecie;
                        rNfDev.Placaveiculo  = fNumero.pPlacaVeiculo;
                        rNfDev.Freteporconta = fNumero.pTp_frete;
                        rNfDev.Vl_frete      = fNumero.pVl_frete;
                        rNfDev.Quantidade    = fNumero.pQuantidade;
                        rNfDev.Pesobruto     = fNumero.pPsbruto;
                        rNfDev.Pesoliquido   = fNumero.pPsliquido;
                        //Dados Exportacao
                        rNfDev.Cd_ufsaidaex = fNumero.pCd_ufsaidaex;
                        rNfDev.Ds_ufsaidaex = fNumero.pDs_ufsaidaex;
                        rNfDev.Uf_saidaex   = fNumero.pUf_saidaex;
                        rNfDev.Ds_localex   = fNumero.pDs_localex;
                    }
                    else
                    {
                        throw new Exception("Obrigatorio informar numero da nota fiscal de destino.");
                    }
                }
            }
            else
            {
                throw new Exception("Não existe configuração fiscal Devolução para tipo de pedido!");
            }
            //Itens da Nota
            rNf.ItensNota.FindAll(p => p.St_processar).ForEach(item =>
            {
                //Item da nota fiscal
                TRegistro_LanFaturamento_Item rItem = new TRegistro_LanFaturamento_Item();
                rItem.Cd_empresa            = item.Cd_empresa;
                rItem.Nr_pedido             = item.Nr_pedido;
                rItem.Id_pedidoitem         = item.Id_pedidoitem;
                rItem.Cd_produto            = item.Cd_produto;
                rItem.Cd_local              = item.Cd_local;
                rItem.Cd_condfiscal_produto = item.Cd_condfiscal_produto;
                rItem.Cd_unidade            = item.Cd_unidade;
                rItem.Cd_unidEst            = item.Cd_unidade;
                rItem.Quantidade            = item.Qtd_devolver;
                rItem.Quantidade_estoque    = item.Qtd_devolver;
                rItem.Vl_subtotal           = item.Qtd_devolver * item.Vl_unitario;
                rItem.Vl_subtotal_estoque   = item.Qtd_devolver * item.Vl_unitario;
                rItem.Vl_unitario           = item.Vl_unitario;
                rItem.Vl_desconto           = (item.Vl_desconto / item.Quantidade) * item.Qtd_devolver;
                rItem.Vl_juro_fin           = (item.Vl_juro_fin / item.Quantidade) * item.Qtd_devolver;

                //Buscar cfop do item
                CamadaDados.Fiscal.TRegistro_CadCFOP rCfop = null;
                if (CamadaNegocio.Fiscal.TCN_Mov_X_CFOP.BuscarCFOP(rNfDev.Cd_movimentacaostring,
                                                                   item.Cd_condfiscal_produto,
                                                                   rNfDev.rEndereco.Cd_uf.Trim().Equals("99") ? "I" : rNfDev.Cd_uf_clifor.Trim().Equals(rNfDev.Cd_uf_empresa.Trim()) ? "D" : "F",
                                                                   (rNfDev.Tp_movimento.Trim().ToUpper().Equals("E") ? rNfDev.Cd_uf_clifor : rNfDev.Cd_uf_empresa),
                                                                   (rNfDev.Tp_movimento.Trim().ToUpper().Equals("E") ? rNfDev.Cd_uf_empresa : rNfDev.Cd_uf_clifor),
                                                                   rNfDev.Tp_movimento,
                                                                   rNfDev.Cd_condfiscal_clifor,
                                                                   rItem.Cd_empresa,
                                                                   ref rCfop,
                                                                   null))
                {
                    rItem.Cd_cfop        = rCfop.CD_CFOP;
                    rItem.Ds_cfop        = rCfop.DS_CFOP;
                    rItem.St_bonificacao = rCfop.St_bonificacaobool;
                }
                else
                {
                    throw new Exception("Não existe CFOP " + (rNf.rEndereco.Cd_uf.Trim().Equals("99") ? "internacional" : rNf.rEndereco.Cd_uf.Trim().Equals(rNf.rEndereco.Cd_uf.Trim()) ? "dentro estado" : "fora estado") + " configurado para a Movimentação " + rNf.Cd_movimentacaostring + " condição fiscal do produto " + item.Cd_condfiscal_produto);
                }
                //Procurar Impostos Estaduais para o Item
                string vObsFiscal       = string.Empty;
                TList_ImpostosNF lImpUf = TCN_LanFaturamento_Item.procuraImpostosPorUf(rItem.Cd_empresa,
                                                                                       (rNfDev.Tp_movimento.Trim().ToUpper().Equals("E") ? rNf.Cd_uf_clifor : rNf.Cd_uf_empresa),
                                                                                       (rNfDev.Tp_movimento.Trim().ToUpper().Equals("E") ? rNf.Cd_uf_empresa : rNf.Cd_uf_clifor),
                                                                                       rNfDev.Cd_movimentacaostring,
                                                                                       rNfDev.Tp_movimento,
                                                                                       rNfDev.Cd_condfiscal_clifor,
                                                                                       rItem.Cd_condfiscal_produto,
                                                                                       rItem.Vl_subtotal,
                                                                                       rItem.Quantidade,
                                                                                       ref vObsFiscal,
                                                                                       rNfDev.Dt_emissao,
                                                                                       rItem.Cd_produto,
                                                                                       rNfDev.Tp_nota,
                                                                                       rNfDev.Nr_serie,
                                                                                       null);
                if (lImpUf.Exists(v => v.Imposto.St_ICMS))
                {
                    TCN_LanFaturamento_Item.PreencherICMS(lImpUf.Find(v => v.Imposto.St_ICMS), rItem);
                    rNf.Obsfiscal += vObsFiscal.Trim();
                }
                else if (TCN_LanFaturamento_Item.ObrigImformarICMS(rItem.Cd_produto, rNf.Nr_serie, null))
                {
                    throw new Exception("Erro: Não existe condição fiscal do ICMS.\r\n" +
                                        "Tipo Movimento: " + rNfDev.Tp_movimento + "\r\n" +
                                        "Movimentação: " + rNfDev.Cd_movimentacao.ToString() + "\r\n" +
                                        "Cond. Fiscal Clifor: " + rNfDev.Cd_condfiscal_clifor.Trim() + "\r\n" +
                                        "Cond. Fiscal Produto: " + rItem.Cd_condfiscal_produto.Trim() + "\r\n" +
                                        "UF Origem: " + (rNfDev.Tp_movimento.Trim().ToUpper().Equals("E") ? rNf.Uf_clifor.Trim() : rNf.Uf_empresa.Trim()) + "\r\n" +
                                        "UF Destino: " + (rNfDev.Tp_movimento.Trim().ToUpper().Equals("E") ? rNf.Uf_empresa.Trim() : rNf.Uf_clifor.Trim()));
                }

                //Procurar impostos sobre os itens da nota fiscal de destino
                TCN_LanFaturamento_Item.PreencherOutrosImpostos(
                    TCN_LanFaturamento_Item.procuraCondicaoFiscalImpostos(rNf.Cd_condfiscal_clifor,
                                                                          rItem.Cd_condfiscal_produto,
                                                                          rNfDev.Cd_movimentacaostring,
                                                                          rNfDev.Tp_movimento,
                                                                          rNfDev.Tp_pessoa,
                                                                          rNfDev.Cd_empresa,
                                                                          rNfDev.Nr_serie,
                                                                          rNfDev.Cd_clifor,
                                                                          rItem.Cd_unidEst,
                                                                          rNfDev.Dt_emissao,
                                                                          rItem.Quantidade,
                                                                          rItem.Vl_subtotal,
                                                                          rNfDev.Tp_nota,
                                                                          rNf.Cd_municipioexecservico,
                                                                          null), rItem, rNfDev.Tp_movimento);
                // Formar Itens a devolver
                rItem.lNfcompdev.Add(new TRegistro_LanFat_ComplementoDevolucao()
                {
                    Cd_empresa             = item.Cd_empresa,
                    Nr_notafiscal_origem   = rNf.Nr_notafiscal,
                    Nr_serie_origem        = rNf.Nr_serie,
                    Nr_lanctofiscal_origem = rNf.Nr_lanctofiscal,
                    Id_nfitem_origem       = item.Id_nfitem,
                    Qtd_lancto             = item.Qtd_devolver,
                    Vl_lancto   = item.Quantidade * item.Vl_unitario,
                    Tp_operacao = "D"
                });
                //Observação do Item com os dados das notas de orig
                rItem.Observacao_item += "NF/Serie Origem      Quantidade     Valor(R$)\r\n" +
                                         (rNf.Nr_notafiscalstr + rNf.Nr_serie).FormatStringDireita(21, ' ') +
                                         item.Qtd_devolver.ToString("N3", new System.Globalization.CultureInfo("en-US", true)) +
                                         rItem.Sigla_unidade_estoque.Trim().FormatStringDireita(15, ' ') +
                                         decimal.Multiply(item.Quantidade, item.Vl_unitario).ToString("N2", new System.Globalization.CultureInfo("en-US", true)).FormatStringDireita(12, ' ') + "\r\n";
                rNfDev.ItensNota.Add(rItem);
            });
            return(rNfDev);

            #endregion
        }
コード例 #7
0
 public static void DevolverNF(TRegistro_LanFaturamento val)
 {
     if (val != null)
     {
         //Verificar se Nf é de devolução
         if (new TCD_LanFat_ComplementoDevolucao().BuscarEscalar(
                 new TpBusca[]
         {
             new TpBusca()
             {
                 vNM_Campo = "a.cd_empresa",
                 vOperador = "=",
                 vVL_Busca = "'" + val.Cd_empresa.Trim() + "'"
             },
             new TpBusca()
             {
                 vNM_Campo = "a.NR_LanctoFiscal_Destino",
                 vOperador = "=",
                 vVL_Busca = val.Nr_lanctofiscalstr
             }
         }, "1") != null)
         {
             MessageBox.Show("Não é possivel devolver NF Devolução!", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
             return;
         }
         using (TFDevolverNF fDev = new TFDevolverNF())
         {
             fDev.rNf = val;
             if (fDev.ShowDialog() == DialogResult.OK)
             {
                 if (fDev.rNf != null)
                 {
                     try
                     {
                         TRegistro_LanFaturamento rFat = GerarDevolucao(fDev.rNf);
                         TCN_LanFaturamento.GravarFaturamento(rFat, null, null);
                         //Enviar NFe Destino
                         if (rFat != null)
                         {
                             //Buscar nota fiscal de destino
                             TRegistro_LanFaturamento rNf =
                                 TCN_LanFaturamento.BuscarNF(rFat.Cd_empresa,
                                                             rFat.Nr_lanctofiscalstr,
                                                             null);
                             //Se for nota propria e NF-e
                             if (rNf.Tp_nota.Trim().ToUpper().Equals("P") && rNf.Cd_modelo.Trim().Equals("55"))
                             {
                                 if (MessageBox.Show("Deseja enviar NF-e Devolução para a receita agora?", "Pergunta", MessageBoxButtons.YesNo,
                                                     MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) == DialogResult.Yes)
                                 {
                                     try
                                     {
                                         using (srvNFE.TFGerenciarNFe fGerNfe = new srvNFE.TFGerenciarNFe())
                                         {
                                             fGerNfe.rNfe = rNf;
                                             fGerNfe.ShowDialog();
                                         }
                                     }
                                     catch (Exception ex)
                                     { MessageBox.Show("Erro enviar NF-e: " + ex.Message.Trim(), "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); }
                                 }
                             }
                         }
                     }
                     catch (Exception ex)
                     { MessageBox.Show(ex.Message.Trim(), "erro", MessageBoxButtons.OK, MessageBoxIcon.Error); }
                 }
             }
         }
     }
 }
コード例 #8
0
        public static void ReprocessarImpostos(TRegistro_LanFaturamento rNf,
                                               CamadaDados.Faturamento.CTRC.TRegistro_ConhecimentoFrete rCtrc,
                                               CamadaDados.Faturamento.PDV.TRegistro_NFCe rEcf,
                                               decimal Vl_TotalNota,
                                               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;
                }
                TList_ImpostosNF lImp = new TList_ImpostosNF();
                if (rCtrc != null)
                {
                    //Verificar se o ctrc possui imposto processado
                    object objfiscal = new TCD_ImpostosNF(banco).BuscarEscalar(
                        new TpBusca[]
                    {
                        new TpBusca()
                        {
                            vNM_Campo = "a.cd_empresa",
                            vOperador = "=",
                            vVL_Busca = "'" + rCtrc.Cd_empresa.Trim() + "'"
                        },
                        new TpBusca()
                        {
                            vNM_Campo = "a.nr_lanctoCTR",
                            vOperador = "=",
                            vVL_Busca = rCtrc.Nr_lanctoCTRC.Value.ToString()
                        },
                        new TpBusca()
                        {
                            vNM_Campo = "a.id_lotefis",
                            vOperador = "is",
                            vVL_Busca = "not null"
                        }
                    }, "1");
                    if (objfiscal != null)
                    {
                        throw new Exception("Não é permitido reprocessar impostos de conhecimento de frete com registro fiscal processado.");
                    }
                    //Buscar impostos CTRC gravados para excluir
                    lImp = Buscar(string.Empty,
                                  rCtrc.Cd_empresa,
                                  string.Empty,
                                  string.Empty,
                                  rCtrc.Nr_lanctoCTRC.Value.ToString(),
                                  string.Empty,
                                  string.Empty,
                                  string.Empty,
                                  string.Empty,
                                  string.Empty,
                                  string.Empty,
                                  false,
                                  string.Empty,
                                  qtb_imp.Banco_Dados);
                }
                //Excluir impostos
                lImp.ForEach(p => Excluir(p, qtb_imp.Banco_Dados));
                //Gravar novos impostos
                if (rCtrc != null)
                {
                    rCtrc.lImpostos.ForEach(p =>
                    {
                        p.Cd_empresa   = rCtrc.Cd_empresa;
                        p.Nr_lanctoctr = rCtrc.Nr_lanctoCTRC;
                        Gravar(p, qtb_imp.Banco_Dados);
                    });
                }
                else if (rNf != null)
                {
                    rNf.ItensNota.ForEach(p => TCN_LanFaturamento_Item.AlterarFaturamentoItem(p, qtb_imp.Banco_Dados));
                }
                else if (rEcf != null)
                {
                    rEcf.lItem.ForEach(p => new CamadaDados.Faturamento.PDV.TCD_NFCe_Item(qtb_imp.Banco_Dados).Gravar(p));
                }
                if (st_transacao)
                {
                    qtb_imp.Banco_Dados.Commit_Tran();
                }
            }
            catch (Exception ex)
            {
                if (st_transacao)
                {
                    qtb_imp.Banco_Dados.RollBack_Tran();
                }
                throw new Exception("Erro reprocessar impostos: " + ex.Message.Trim());
            }
            finally
            {
                if (st_transacao)
                {
                    qtb_imp.deletarBanco_Dados();
                }
            }
        }
コード例 #9
0
        public static bool ExcluirNotaFiscal(TRegistro_LanFaturamento val, BancoDados.TObjetoBanco banco)
        {
            bool st_transacao         = false;
            TCD_LanFaturamento qtb_nf = new TCD_LanFaturamento();

            try
            {
                if (banco == null)
                {
                    st_transacao = qtb_nf.CriarBanco_Dados(true);
                }
                else
                {
                    qtb_nf.Banco_Dados = banco;
                }
                //Verificar se NFe e se a mesma foi cancelada junto a receita
                if (val.Cd_modelo.Trim().Equals("55") &&
                    (new CamadaDados.Faturamento.NFE.TCD_LanLoteNFE_X_NotaFiscal(qtb_nf.Banco_Dados).BuscarEscalar(
                         new TpBusca[]
                {
                    new TpBusca()
                    {
                        vNM_Campo = "a.cd_empresa",
                        vOperador = "=",
                        vVL_Busca = "'" + val.Cd_empresa.Trim() + "'"
                    },
                    new TpBusca()
                    {
                        vNM_Campo = "a.nr_lanctofiscal",
                        vOperador = "=",
                        vVL_Busca = val.Nr_lanctofiscal.ToString()
                    },
                    new TpBusca()
                    {
                        vNM_Campo = "a.status",
                        vOperador = "in",
                        vVL_Busca = "('100', '110')"
                    },
                    new TpBusca()
                    {
                        vNM_Campo = "d.tp_ambiente",
                        vOperador = "<>",
                        vVL_Busca = "'2'"    //Producao
                    }
                }, "1") != null))
                {
                    throw new Exception("Não é permitido excluir Nota Fiscal Eletronica ACEITA ou DENEGADA pela receita.");
                }
                //Verificar se a nota fiscal possui imposto processado
                object objfiscal = new CamadaDados.Faturamento.NotaFiscal.TCD_ImpostosNF(banco).BuscarEscalar(
                    new TpBusca[]
                {
                    new TpBusca()
                    {
                        vNM_Campo = "a.cd_empresa",
                        vOperador = "=",
                        vVL_Busca = "'" + val.Cd_empresa.Trim() + "'"
                    },
                    new TpBusca()
                    {
                        vNM_Campo = "a.nr_lanctofiscal",
                        vOperador = "=",
                        vVL_Busca = val.Nr_lanctofiscal.ToString()
                    },
                    new TpBusca()
                    {
                        vNM_Campo = "a.id_lotefis",
                        vOperador = "is",
                        vVL_Busca = "not null"
                    }
                }, "1");
                if (objfiscal != null)
                {
                    throw new Exception("Não é permitido excluir nota fiscal que possui registro fiscal processado.\r\n" +
                                        "Entre em contato com o departamento contabil para excluir a nota fiscal");
                }
                int mes = 0;
                int ano = 0;
                //Verificar se a nota fiscal esta dentro do mes corrente
                if (val.Tp_movimento.Trim().ToUpper().Equals("E"))
                {
                    mes = val.Dt_saient.Value.Month;
                    ano = val.Dt_saient.Value.Year;
                }
                else
                {
                    mes = val.Dt_emissao.Value.Month;
                    ano = val.Dt_emissao.Value.Year;
                }
                if (CamadaDados.UtilData.Data_Servidor().Month.Equals(val.Tp_movimento.Trim().ToUpper().Equals("E") ? val.Dt_saient.Value.Month : val.Dt_emissao.Value.Month) &&
                    CamadaDados.UtilData.Data_Servidor().Year.Equals(val.Tp_movimento.Trim().ToUpper().Equals("E") ? val.Dt_saient.Value.Year : val.Dt_emissao.Value.Year))
                {
                    qtb_nf.ExcluirNotaFiscal(val);
                }
                else if (Diversos.TCN_Usuario_RegraEspecial.ValidaRegra(Parametros.pubLogin.Trim().ToUpper(), "PERMITIR EXCLUIR NOTA FISCAL FORA PERIODO", banco))
                {
                    qtb_nf.ExcluirNotaFiscal(val);
                }
                else
                {
                    throw new Exception("Usuario " + Utils.Parametros.pubLogin.Trim() + " não é tem permissão para excluir nota fiscal com data movimentação fora do mês corrente.");
                }
                if (st_transacao)
                {
                    qtb_nf.Banco_Dados.Commit_Tran();
                }
                return(true);
            }
            catch (Exception ex)
            {
                if (st_transacao)
                {
                    qtb_nf.Banco_Dados.RollBack_Tran();
                }
                throw new Exception("Erro excluir nota fiscal: " + ex.Message.Trim());
            }
            finally
            {
                if (st_transacao)
                {
                    qtb_nf.deletarBanco_Dados();
                }
            }
        }
コード例 #10
0
        public void Imprime_NF(TRegistro_LanFaturamento listNF,
                               bool St_imprimir,
                               bool St_visualizar,
                               bool St_enviaremail,
                               List <string> Destinatarios,
                               string Titulo,
                               string Mensagem)
        {
            TList_CFGImpNF CfgImpNf = TCN_CFGImpNF.Buscar(listNF.Nr_serie, listNF.Cd_modelo, listNF.Cd_empresa, null);

            if (CfgImpNf.Count > 0)
            {
                //Buscar itens da nota
                listNF.ItensNota = CamadaNegocio.Faturamento.NotaFiscal.TCN_LanFaturamento_Item.Busca(listNF.Cd_empresa, listNF.Nr_lanctofiscalstr, string.Empty, null);
                //Tratar observacao Fiscal dos itens da nota
                listNF.ItensNota = this.ObservacaoFiscalItemNf(listNF, CfgImpNf[0].Tam_dadosadic);
                //ADD A QTD DE LINHAS Q FALTA
                if (listNF.ItensNota.Count < CfgImpNf[0].Qt_itensnota)
                {
                    int QtdItemVazio = (Convert.ToInt32(CfgImpNf[0].Qt_itensnota) - listNF.ItensNota.Count);
                    if (listNF.Vl_desconto > 0)
                    {
                        QtdItemVazio -= 1;
                    }
                    for (int i = 0; i < QtdItemVazio; i++)
                    {
                        listNF.ItensNota.Add(new TRegistro_LanFaturamento_Item());
                    }
                    if (listNF.Vl_desconto > 0)
                    {
                        listNF.ItensNota.Add(new TRegistro_LanFaturamento_Item()
                        {
                            Ds_produto = "Desconto sobre produtos: " + Math.Round(listNF.Vl_desconto, 2)
                        });
                    }
                }
                else
                {
                    TList_RegLanFaturamento_Item ListaItem = new TList_RegLanFaturamento_Item();
                    int contador = 0;

                    for (int i = 0; i < listNF.ItensNota.Count; i++)
                    {
                        if (contador == ((Convert.ToInt32(CfgImpNf[0].Qt_itensnota) - 1)))
                        {
                            ListaItem.Add(new TRegistro_LanFaturamento_Item()
                            {
                                Ds_produto = "VALOR A TRANSPORTAR... " + ListaItem.Sum(p => p.Vl_subtotal).ToString("C2", new System.Globalization.CultureInfo("pt-BR", true))
                            });
                            for (int x = 0; x < CfgImpNf[0].Qt_linha; x++)
                            {
                                ListaItem.Add(new TRegistro_LanFaturamento_Item());
                            }
                            ListaItem.Add(new TRegistro_LanFaturamento_Item()
                            {
                                Ds_produto = "VALOR TRANSPORTADO... " + ListaItem.Sum(p => p.Vl_subtotal).ToString("C2", new System.Globalization.CultureInfo("pt-BR", true))
                            });
                            //PARA PULAR DE LINHA
                            contador = 1;
                        }

                        contador++;
                        ListaItem.Add(listNF.ItensNota[i]);
                        if (i == (listNF.ItensNota.Count - 1))
                        {
                            if (CfgImpNf[0].Qt_itensnota > 0)
                            {
                                int QtdItemVazio = (Convert.ToInt32(CfgImpNf[0].Qt_itensnota) - contador);
                                if (listNF.Vl_desconto > 0)
                                {
                                    QtdItemVazio -= 1;
                                }
                                for (int x = 0; x < QtdItemVazio; x++)
                                {
                                    ListaItem.Add(new TRegistro_LanFaturamento_Item());
                                }
                                if (listNF.Vl_desconto > 0)
                                {
                                    ListaItem.Add(new TRegistro_LanFaturamento_Item()
                                    {
                                        Ds_produto = "Desconto sobre produtos: " + Math.Round(listNF.Vl_desconto, 2)
                                    });
                                }
                            }
                        }
                    }

                    listNF.ItensNota.Clear();
                    listNF.ItensNota = ListaItem;
                }

                if (listNF.Duplicata.Count == 0)
                {
                    listNF.Duplicata.Add(new TRegistro_LanDuplicata());
                }

                //ADD AS PARCELAS
                for (int i = 0; i < listNF.Duplicata[0].Parcelas.Count; i++)
                {
                    this.Parametros_Relatorio.Add("CDPARCELA" + i, listNF.Duplicata[0].Parcelas[i].Cd_parcela.ToString());
                    this.Parametros_Relatorio.Add("DTVENCTO" + i, listNF.Duplicata[0].Parcelas[i].Dt_vencto);
                    this.Parametros_Relatorio.Add("VLPARCELA" + i, listNF.Duplicata[0].Parcelas[i].Vl_parcela);
                }

                this.reportManager.DataSources.Add("DTS", listNF);

                Imprime(CfgImpNf[0],
                        listNF.Nr_notafiscal.ToString(),
                        St_imprimir,
                        St_visualizar,
                        St_enviaremail,
                        Destinatarios,
                        Titulo,
                        Mensagem);
            }
        }
コード例 #11
0
        private void Imprime_Danfe()
        {
            FormRelPadrao.Relatorio Danfe = new FormRelPadrao.Relatorio();
            Danfe.Altera_Relatorio = Altera_Relatorio;
            //Buscar NFe
            TRegistro_LanFaturamento rNfe = TCN_LanFaturamento.BuscarNF((bsNotaFiscal.Current as TRegistro_LanFaturamento).Cd_empresa,
                                                                        (bsNotaFiscal.Current as TRegistro_LanFaturamento).Nr_lanctofiscalstr,
                                                                        null);

            //Buscar Itens NFe
            rNfe.ItensNota = TCN_LanFaturamento_Item.Busca(rNfe.Cd_empresa,
                                                           rNfe.Nr_lanctofiscalstr,
                                                           string.Empty,
                                                           null);
            Danfe.Parametros_Relatorio.Add("VL_IPI", rNfe.ItensNota.Sum(v => v.Vl_ipi));
            Danfe.Parametros_Relatorio.Add("VL_ICMS", rNfe.ItensNota.Sum(v => v.Vl_icms + v.Vl_FCP));
            Danfe.Parametros_Relatorio.Add("VL_BASEICMS", rNfe.ItensNota.Sum(v => v.Vl_basecalcICMS));
            Danfe.Parametros_Relatorio.Add("VL_BASEICMSSUBST", rNfe.ItensNota.Sum(v => v.Vl_basecalcSTICMS));
            Danfe.Parametros_Relatorio.Add("VL_ICMSSUBST", rNfe.ItensNota.Sum(v => v.Vl_ICMSST + v.Vl_FCPST));

            BindingSource Bin = new BindingSource();

            Bin.DataSource = new TList_RegLanFaturamento()
            {
                rNfe
            };
            Danfe.Nome_Relatorio = "TFLanFaturamento_Danfe";
            Danfe.NM_Classe      = "TFLanConsultaNFe";
            Danfe.Modulo         = "FAT";
            Danfe.Ident          = "TFLanFaturamento_Danfe";
            Danfe.DTS_Relatorio  = Bin;
            //Buscar financeiro da DANFE
            CamadaDados.Financeiro.Duplicata.TList_RegLanParcela lParc =
                new CamadaDados.Financeiro.Duplicata.TCD_LanParcela().Select(
                    new Utils.TpBusca[]
            {
                new Utils.TpBusca()
                {
                    vNM_Campo = "isnull(a.st_registro, 'A')",
                    vOperador = "<>",
                    vVL_Busca = "'L'"
                },
                new Utils.TpBusca()
                {
                    vNM_Campo = string.Empty,
                    vOperador = "exists",
                    vVL_Busca = "(select 1 from tb_fin_duplicata x " +
                                "inner join tb_fat_notafiscal_x_duplicata y " +
                                "on x.cd_empresa = y.cd_empresa " +
                                "and x.nr_lancto = y.nr_lanctoduplicata " +
                                "where isnull(x.st_registro, 'A') <> 'C' " +
                                "and x.cd_empresa = a.cd_empresa " +
                                "and x.nr_lancto = a.nr_lancto " +
                                "and y.cd_empresa = '" + (bsNotaFiscal.Current as TRegistro_LanFaturamento).Cd_empresa.Trim() + "' " +
                                "and y.nr_lanctofiscal = " + (bsNotaFiscal.Current as TRegistro_LanFaturamento).Nr_lanctofiscal + ")"
                }
            }, 0, string.Empty, "a.dt_vencto, c.nm_clifor", string.Empty);
            if (lParc.Count == 0)
            {
                //Verificar se Nota a nota foi vinculada de um cupom e buscar o Financeiro
                lParc =
                    new CamadaDados.Financeiro.Duplicata.TCD_LanParcela().Select(
                        new Utils.TpBusca[]
                {
                    new Utils.TpBusca()
                    {
                        vNM_Campo = "isnull(a.st_registro, 'A')",
                        vOperador = "<>",
                        vVL_Busca = "'L'"
                    },
                    new Utils.TpBusca()
                    {
                        vNM_Campo = string.Empty,
                        vOperador = "exists",
                        vVL_Busca = "(select 1 from tb_fin_duplicata x " +
                                    "inner join TB_PDV_CupomFiscal_X_Duplicata y " +
                                    "on x.cd_empresa = y.cd_empresa " +
                                    "and x.nr_lancto = y.nr_lancto " +
                                    "inner join TB_PDV_Cupom_X_VendaRapida k " +
                                    "on y.cd_empresa = k.cd_empresa " +
                                    "and y.id_cupom = k.id_vendarapida " +
                                    "inner join TB_FAT_ECFVinculadoNF z " +
                                    "on k.cd_empresa = z.cd_empresa " +
                                    "and k.id_cupom = z.id_cupom " +
                                    "where isnull(x.st_registro, 'A') <> 'C' " +
                                    "and x.cd_empresa = a.cd_empresa " +
                                    "and x.nr_lancto = a.nr_lancto " +
                                    "and z.cd_empresa = '" + (bsNotaFiscal.Current as TRegistro_LanFaturamento).Cd_empresa.Trim() + "' " +
                                    "and z.nr_lanctofiscal = " + (bsNotaFiscal.Current as TRegistro_LanFaturamento).Nr_lanctofiscal + ")"
                    }
                }, 0, string.Empty, "a.dt_vencto, c.nm_clifor", string.Empty);
                if (lParc.Count == 0)
                {
                    //Verificar se Nota foi gerada de uma venda rapida e buscar o Financeiro
                    lParc =
                        new CamadaDados.Financeiro.Duplicata.TCD_LanParcela().Select(
                            new Utils.TpBusca[]
                    {
                        new Utils.TpBusca()
                        {
                            vNM_Campo = "isnull(a.st_registro, 'A')",
                            vOperador = "<>",
                            vVL_Busca = "'L'"
                        },
                        new Utils.TpBusca()
                        {
                            vNM_Campo = string.Empty,
                            vOperador = "exists",
                            vVL_Busca = "(select 1 from tb_fin_duplicata x " +
                                        "inner join TB_PDV_CupomFiscal_X_Duplicata y " +
                                        "on x.cd_empresa = y.cd_empresa " +
                                        "and x.nr_lancto = y.nr_lancto " +
                                        "inner join TB_PDV_Pedido_X_VendaRapida k " +
                                        "on k.cd_empresa = y.cd_empresa " +
                                        "and k.id_vendarapida = y.id_cupom " +
                                        "inner join TB_FAT_NotaFiscal z " +
                                        "on z.cd_empresa = k.cd_empresa " +
                                        "and z.nr_pedido = k.nr_pedido " +
                                        "where isnull(x.st_registro, 'A') <> 'C' " +
                                        "and x.cd_empresa = a.cd_empresa " +
                                        "and x.nr_lancto = a.nr_lancto " +
                                        "and z.cd_empresa = '" + (bsNotaFiscal.Current as TRegistro_LanFaturamento).Cd_empresa.Trim() + "' " +
                                        "and z.nr_lanctofiscal = " + (bsNotaFiscal.Current as TRegistro_LanFaturamento).Nr_lanctofiscal + ")"
                        }
                    }, 0, string.Empty, "a.dt_vencto, c.nm_clifor", string.Empty);
                }
            }
            if (lParc.Count > 0)
            {
                for (int i = 0; i < lParc.Count; i++)
                {
                    if (i < 12)
                    {
                        Danfe.Parametros_Relatorio.Add("DT_VENCTO" + i.ToString(), lParc[i].Dt_venctostring);
                        Danfe.Parametros_Relatorio.Add("VL_DUP" + i.ToString(), lParc[i].Vl_parcela_padrao);
                    }
                    else
                    {
                        break;
                    }
                }
            }
            //Verificar se existe logo configurada para a empresa
            object log = new CamadaDados.Diversos.TCD_CadEmpresa().BuscarEscalar(
                new Utils.TpBusca[]
            {
                new Utils.TpBusca()
                {
                    vNM_Campo = "a.cd_empresa",
                    vOperador = "=",
                    vVL_Busca = "'" + (bsNotaFiscal.Current as TRegistro_LanFaturamento).Cd_empresa.Trim() + "'"
                }
            }, "a.logoEmpresa");

            if (log != null)
            {
                Danfe.Parametros_Relatorio.Add("IMAGEM_RELATORIO", log);
            }
            Danfe.Gera_Relatorio();
        }
コード例 #12
0
        public static string GravarAplicacaoPedido(string CD_Empresa,
                                                   decimal saldoAplicar,
                                                   TRegistro_LanFaturamento rNotaFiscal,
                                                   TObjetoBanco banco)
        {
            TCD_LanAplicacaoPedido qtb_aplic = new TCD_LanAplicacaoPedido();
            bool pode_liberar = false;

            try
            {
                //Start Transação
                if (banco == null)
                {
                    pode_liberar = qtb_aplic.CriarBanco_Dados(true);
                }
                else
                {
                    qtb_aplic.Banco_Dados = banco;
                }

                //Gravar Notas Fiscais da Aplicacao
                if (rNotaFiscal == null)
                {
                    throw new Exception("Erro processar aplicação. Não existe nota para processar.");
                }

                if ((rNotaFiscal.Nr_pedido == null) || (rNotaFiscal.Nr_pedido == 0))
                {
                    throw new Exception("ERRO: Não existe pedido informado para a nota fiscal " + rNotaFiscal.Nr_notafiscal.ToString());
                }

                rNotaFiscal.ItensNota.ForEach(p =>
                {
                    if (p.Nr_pedido.Equals(0))
                    {
                        throw new Exception("ERRO: Não existe pedido informado para o item: " + p.Cd_produto.Trim() + "-" + p.Ds_produto.Trim() + " da nota fiscal " + rNotaFiscal.Nr_notafiscal.ToString());
                    }

                    if ((p.Id_pedidoitem == null) || (p.Id_pedidoitem == 0))
                    {
                        throw new Exception("ERRO: Não existe item de pedido informado para o item: " + p.Cd_produto.Trim() + "-" + p.Ds_produto.Trim() + " da nota fiscal " + rNotaFiscal.Nr_notafiscal.ToString());
                    }

                    TRegistro_EntregaPedido rgent = new TRegistro_EntregaPedido()
                    {
                        Id_entrega    = null,
                        Nr_pedido     = p.Nr_pedido,
                        Cd_produto    = p.Cd_produto,
                        Id_pedidoitem = p.Id_pedidoitem,
                        Qtd_entregue  = p.Quantidade_estoque > 0 ? p.Quantidade_estoque : p.Quantidade,
                        Dt_entrega    = rNotaFiscal.Dt_saient,
                        Ds_observacao = "ENTREGA GRAVADA AUTOMATICAMENTE PELA APLICACAO"
                    };

                    rgent.Id_entregastr = TCN_LanEntregaPedido.Gravar(rgent, qtb_aplic.Banco_Dados);

                    //ADICIONAR A ENTREGA NA NOTAITEM PARA SER UTILIZADA NO PROCESSAMENTO DA NOTA
                    //QUANDO FOR APLICACAO A ENTREGA A SER CUMPRIDA OBRIGATORIAMENTE SERA A GRAVADA ACIMA E NAO OUTRAS COM SALDO DISPONIVEL
                    p.lEntrega = new TList_EntregaPedido();
                    p.lEntrega.Add(rgent);
                });

                //Grava Nota Fiscal
                //gravar taxas de deposito separado da nota
                string retorno = TCN_LanFaturamento.GravarFaturamento(rNotaFiscal, false, null, qtb_aplic.Banco_Dados);
                //Para cada item da nota fiscal, gravar um registro aplicacao
                rNotaFiscal.ItensNota.ForEach(p =>
                {
                    if (p.rEstoque == null)
                    {
                        throw new Exception("Aplicação não pode ser processada. Não foi possivel gerar estoque.");
                    }
                    p.lTicketAplicar.ForEach(v =>
                    {
                        TRegistro_LanAplicacaoPedido val = new TRegistro_LanAplicacaoPedido();
                        //Gravar Aplicação
                        val.Cd_empresa           = p.Cd_empresa;
                        val.Id_ticket            = v.Id_ticket.Value;
                        val.Tp_pesagem           = v.Tp_pesagem;
                        val.Nr_pedido            = p.Nr_pedido;
                        val.Cd_produto           = p.Cd_produto;
                        val.Id_pedidoitem        = p.Id_pedidoitem.Value;
                        val.Id_lanctoestoque     = p.rEstoque.Id_lanctoestoque;
                        val.Qtd_aplicado         = v.Ps_Aplicar;
                        val.Vl_unitario          = TCN_CadConvUnidade.ConvertUnid(v.Cd_unid_produto, v.Cd_unid_contrato, v.Vl_unit_contrato, 7, qtb_aplic.Banco_Dados);
                        val.Vl_subtotal          = Math.Round(v.Ps_Aplicar * val.Vl_unitario, 2);
                        val.Id_aplicacao         = null;
                        val.Id_autoriz           = v.Id_autoriz;
                        string retorno_aplicacao = qtb_aplic.Gravar(val);
                        retorno          = retorno + "|" + retorno_aplicacao;
                        val.Id_aplicacao = Convert.ToDecimal(CamadaDados.TDataQuery.getPubVariavel(retorno_aplicacao, "@P_ID_APLICACAO"));
                        //Gravar Aplicação X Nota Fiscal
                        retorno = retorno + "|" + TCN_LanAplicacao_NotaFiscal.GravarAplicacaoXNotaFiscal(
                            new TRegistro_LanAplicacao_NotaFiscal()
                        {
                            Cd_empresa      = val.Cd_empresa,
                            Id_aplicacao    = val.Id_aplicacao,
                            Id_nfitem       = p.Id_nfitem,
                            Nr_lanctofiscal = p.Nr_lanctofiscal
                        }, qtb_aplic.Banco_Dados);
                    });
                    //Gravar Movimento Deposito
                    TCN_MovDeposito.GravarMovDeposito(new TRegistro_MovDeposito()
                    {
                        Id_Movto         = 0,
                        Nr_Pedido        = p.Nr_pedido,
                        CD_Produto       = p.Cd_produto,
                        CD_Empresa       = p.Cd_empresa,
                        Id_LanctoEstoque = p.rEstoque.Id_lanctoestoque,
                        Id_pedidoitem    = p.Id_pedidoitem.Value
                    }, qtb_aplic.Banco_Dados);
                    //Gravar Pesagem GMO
                    CamadaNegocio.Graos.TCN_LanRoyaltiesGMO.GravaPesagemGMO(p, rNotaFiscal.Tp_movimento, qtb_aplic.Banco_Dados);
                    //Contrato Entrada a Fixar
                    TRegistro_CadCFGPedido rCfg = new TCD_CadCFGPedido(qtb_aplic.Banco_Dados).Select(
                        new TpBusca[]
                    {
                        new TpBusca()
                        {
                            vNM_Campo = string.Empty,
                            vOperador = "exists",
                            vVL_Busca = "(select 1 from tb_fat_pedido x " +
                                        "where x.cfg_pedido = a.cfg_pedido " +
                                        "and x.nr_pedido = " + p.Nr_pedido.ToString() + ")"
                        }
                    }, 1, string.Empty)[0];
                });
                if (pode_liberar)
                {
                    qtb_aplic.Banco_Dados.Commit_Tran();
                }
                return(retorno);
            }
            catch (Exception ex)
            {
                if (pode_liberar)
                {
                    qtb_aplic.Banco_Dados.RollBack_Tran();
                }
                throw new Exception("Erro gravar aplicação: " + ex.Message.Trim());
            }
            finally
            {
                if (pode_liberar)
                {
                    qtb_aplic.deletarBanco_Dados();
                }
            }
        }
コード例 #13
0
 public static TRegistro_LanFaturamento ProcessarAplicPsDiversos(List <TRegistro_PesagemDiversas> lTicket)
 {
     if (lTicket.Count > 0)
     {
         using (TFPedidoPsDiversa fPed = new TFPedidoPsDiversa())
         {
             fPed.pTp_movimento = lTicket[0].Tp_movimento;
             fPed.pCd_empresa   = lTicket[0].Cd_empresa;
             fPed.pNm_empresa   = lTicket[0].Nm_empresa;
             fPed.pCd_clifor    = lTicket[0].Cd_clifor;
             fPed.pNm_clifor    = lTicket[0].Nm_clifor;
             fPed.pCd_produto   = lTicket[0].Cd_produto;
             fPed.pDs_produto   = lTicket[0].Ds_produto;
             fPed.pCd_unidade   = lTicket[0].Cd_unidade;
             fPed.pSg_produto   = lTicket[0].Sg_produto;
             string und_balanca = CamadaNegocio.ConfigGer.TCN_CadParamGer.BuscaVL_String_Empresa("UND_BALANCA", lTicket[0].Cd_empresa);
             if (!string.IsNullOrEmpty(und_balanca))
             {
                 fPed.pQuantidade = TCN_CadConvUnidade.ConvertUnid(und_balanca, lTicket[0].Cd_unidade, lTicket.Sum(p => p.Ps_liquidobruto), 3, null);
             }
             else
             {
                 fPed.pQuantidade = lTicket.Sum(p => p.Ps_liquidobruto);
             }
             if (fPed.ShowDialog() == System.Windows.Forms.DialogResult.OK)
             {
                 CamadaDados.Faturamento.Pedido.TRegistro_Pedido rPed = new CamadaDados.Faturamento.Pedido.TRegistro_Pedido();
                 try
                 {
                     rPed.TP_Movimento = lTicket[0].Tp_movimento;
                     rPed.CD_Empresa   = fPed.pCd_empresa;
                     rPed.CFG_Pedido   = fPed.cfg_pedido;
                     rPed.CD_Clifor    = fPed.pCd_clifor;
                     rPed.CD_Endereco  = fPed.cd_endereco;
                     rPed.DT_Pedido    = CamadaDados.UtilData.Data_Servidor();
                     rPed.Pedido_Itens.Add(new CamadaDados.Faturamento.Pedido.TRegistro_LanPedido_Item()
                     {
                         Cd_produto       = fPed.pCd_produto,
                         Cd_unidade_valor = fPed.cd_unidade,
                         Cd_local         = fPed.cd_local,
                         Quantidade       = fPed.quantidade,
                         Vl_unitario      = fPed.vl_unitario,
                         Vl_subtotal      = fPed.vl_subtotal
                     });
                     CamadaNegocio.Faturamento.Pedido.TCN_Pedido.Grava_Pedido(rPed, null);
                     //Buscar pedido
                     rPed = TCN_Pedido.Busca_Registro_Pedido(rPed.Nr_pedido.ToString(), null);
                     //Buscar itens pedido
                     TCN_Pedido.Busca_Pedido_Itens(rPed, false, null);
                     TRegistro_LanFaturamento rNota = Proc_Commoditties.TProcessaPedFaturar.ProcessaPedFaturar(rPed, false, decimal.Zero);
                     rNota.Placaveiculo         = lTicket[0].Placacarreta;
                     rNota.Pesobruto            = lTicket.Sum(p => p.Ps_bruto);
                     rNota.Pesoliquido          = lTicket.Sum(p => p.Ps_liquidobruto);
                     rNota.Cd_transportadora    = lTicket[0].Cd_transp;
                     rNota.Nm_razaosocialtransp = lTicket[0].Nm_transp;
                     return(rNota);
                 }
                 catch (Exception ex)
                 {
                     TCN_Pedido.Deleta_Pedido(rPed, null);
                     throw new Exception(ex.Message.Trim());
                 }
             }
             else
             {
                 return(null);
             }
         }
     }
     else
     {
         return(null);
     }
 }
コード例 #14
0
        public static TRegistro_LanFaturamento ProcessarNF(TRegistro_Pedido rPedido)
        {
            //Buscar Configuração Fiscal Pedido
            TList_CadCFGPedidoFiscal lCfgPed = new TCD_CadCFGPedidoFiscal().Select(
                new TpBusca[]
            {
                new TpBusca()
                {
                    vNM_Campo = "a.cfg_pedido",
                    vOperador = "=",
                    vVL_Busca = "'" + rPedido.CFG_Pedido + "'"
                },
                new TpBusca()
                {
                    vNM_Campo = "a.tp_fiscal",
                    vOperador = "=",
                    vVL_Busca = "'RT'"
                }
            }, 1, string.Empty);

            if (lCfgPed.Count > 0)
            {
                //Buscar Notas Vendas Sem Remessa
                TList_RegLanFaturamento lNFV = new TCD_LanFaturamento().Select(
                    new TpBusca[]
                {
                    new TpBusca()
                    {
                        vNM_Campo = "a.nr_pedido",
                        vOperador = "=",
                        vVL_Busca = rPedido.Nr_pedido.ToString()
                    },
                    new TpBusca()
                    {
                        vNM_Campo = "isnull(a.st_registro, 'A')",
                        vOperador = "<>",
                        vVL_Busca = "'C'"
                    },
                    new TpBusca()
                    {
                        vNM_Campo = "isnull(cmi.st_remessatransp, 'N')",
                        vOperador = "<>",
                        vVL_Busca = "'S'"
                    },
                    new TpBusca()
                    {
                        vNM_Campo = "a.nr_lanctofiscalRT",
                        vOperador = "is",
                        vVL_Busca = "null"
                    }
                }, 0, string.Empty);
                if (lNFV.Count.Equals(0))
                {
                    throw new Exception("Pedido não possui nota venda disponivel para gerar REMESSA TRANSPORTE.");
                }
                TRegistro_LanFaturamento rNF = null;
                if (lNFV.Count > 1)
                {
                    using (TFListaNF fNF = new TFListaNF())
                    {
                        fNF.lFat = lNFV;
                        if (fNF.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                        {
                            if (fNF.rFat != null)
                            {
                                rNF = fNF.rFat;
                            }
                        }
                    }
                }
                else
                {
                    rNF = lNFV[0];
                }
                if (rNF == null)
                {
                    throw new Exception("Obrigório selecionar nota fiscal para gerar REMESSA TRANSPORTE.");
                }
                TRegistro_LanFaturamento ret = new TRegistro_LanFaturamento();
                ret.Cd_empresa           = rNF.Cd_empresa;
                ret.Cd_clifor            = !string.IsNullOrEmpty(rPedido.Cd_cliforent) ? rPedido.Cd_cliforent : rNF.Cd_clifor;
                ret.Nm_clifor            = !string.IsNullOrEmpty(rPedido.Nm_cliforent) ? rPedido.Nm_cliforent : rNF.Nm_clifor;
                ret.Cd_endereco          = !string.IsNullOrEmpty(rPedido.Cd_enderecoent) ? rPedido.Cd_enderecoent : rNF.Cd_endereco;
                ret.Cd_cmi               = lCfgPed[0].Cd_cmi;
                ret.Cd_movimentacao      = lCfgPed[0].Cd_movto;
                ret.lCFGFiscal           = lCfgPed;
                ret.Cd_uf_empresa        = rNF.Cd_uf_empresa;
                ret.Uf_empresa           = rNF.Uf_empresa;
                ret.Uf_clifor            = rNF.Uf_clifor;
                ret.Cd_condfiscal_clifor = !string.IsNullOrEmpty(rPedido.Cd_cliforent) ? rPedido.Cd_condfiscalent : rNF.Cd_condfiscal_clifor;
                ret.Cd_uf_clifor         = !string.IsNullOrEmpty(rPedido.Cd_cliforent) ? rPedido.Cd_uf_ent : rNF.Cd_uf_clifor;
                ret.Nr_pedido            = rNF.Nr_pedido;
                ret.Tp_movimento         = rNF.Tp_movimento;
                ret.Tp_pessoa            = rNF.Tp_pessoa;
                ret.Tp_nota              = rNF.Tp_nota;
                ret.Nr_serie             = lCfgPed[0].Nr_serie;
                ret.Cd_modelo            = lCfgPed[0].Cd_modelo;
                ret.St_sequenciaauto     = lCfgPed[0].ST_SequenciaAuto.Trim().ToUpper().Equals("S");
                ret.Dt_emissao           = CamadaDados.UtilData.Data_Servidor();
                ret.Dt_saient            = ret.Dt_emissao;
                ret.Dadosadicionais      = ProcessaAplicacao.BuscarObsMov("D",
                                                                          ret.Cd_movimentacaostring,
                                                                          rNF.Uf_clifor.Trim().Equals(rNF.Uf_empresa.Trim()));
                ret.Obsfiscal = ProcessaAplicacao.BuscarObsMov("F",
                                                               ret.Cd_movimentacaostring,
                                                               rNF.Uf_clifor.Trim().Equals(rNF.Uf_empresa.Trim()));
                ret.Freteporconta        = rNF.Tp_frete;
                ret.Cd_transportadora    = rNF.Cd_transportadora;
                ret.Nm_razaosocialtransp = rNF.Nm_razaosocialtransp;
                ret.Cpf_transp           = rNF.Cpf_transp;
                ret.Placaveiculo         = rNF.Placaveiculo;
                //Abrir tela para capturar dados da nota fiscal
                using (NumeroNota.TFNumero_Nota fNumero = new NumeroNota.TFNumero_Nota())
                {
                    fNumero.pCd_empresa       = ret.Cd_empresa;
                    fNumero.pNm_empresa       = ret.Nm_empresa;
                    fNumero.pCd_clifor        = ret.Cd_clifor;
                    fNumero.pNm_clifor        = ret.Nm_clifor;
                    fNumero.pTp_pessoa        = ret.Tp_pessoa;
                    fNumero.pTp_movimento     = ret.Tp_movimento;
                    fNumero.pTp_nota          = ret.Tp_nota;
                    fNumero.pChave_Acesso_NFe = ret.Chave_acesso_nfe;
                    fNumero.pNr_serie         = ret.Nr_serie;
                    fNumero.pDs_serie         = ret.Ds_serienf;
                    fNumero.pCd_modelo        = ret.Cd_modelo;
                    fNumero.pDt_emissao       = ret.Dt_emissao;
                    fNumero.pST_NotaUnica     = false;
                    fNumero.pNr_notafiscal    = ret.Nr_notafiscal.HasValue ? ret.Nr_notafiscal.Value.ToString() : string.Empty;
                    fNumero.pDt_saient        = ret.Dt_saient;
                    fNumero.pDs_dadosadic     = ret.Dadosadicionais;
                    fNumero.pDs_obsfiscal     = ret.Obsfiscal;
                    fNumero.pSt_sequenciaauto = ret.St_sequenciaauto;
                    fNumero.pCd_movto         = ret.Cd_movimentacaostring;
                    fNumero.pCd_cmi           = ret.Cd_cmistring;
                    fNumero.pSt_servico       = lCfgPed.Count > 0 ? lCfgPed[0].St_servico : false;
                    if (ret.Tp_nota.Trim().ToUpper().Equals("T"))
                    {
                        //Buscar inscricao estadual do clifor da nota
                        object obj_insc = new TCD_CadEndereco().BuscarEscalar(
                            new TpBusca[]
                        {
                            new TpBusca()
                            {
                                vNM_Campo = "a.cd_clifor",
                                vOperador = "=",
                                vVL_Busca = "'" + ret.Cd_clifor.Trim() + "'"
                            },
                            new TpBusca()
                            {
                                vNM_Campo = "a.cd_endereco",
                                vOperador = "=",
                                vVL_Busca = "'" + ret.Cd_endereco.Trim() + "'"
                            }
                        }, "a.insc_estadual");
                        fNumero.pInsc_estadual = obj_insc == null ? string.Empty : obj_insc.ToString();
                    }
                    fNumero.pTp_frete          = ret.Freteporconta;
                    fNumero.pCd_transportadora = ret.Cd_transportadora;
                    fNumero.pNm_transportadora = ret.Nm_razaosocialtransp;
                    fNumero.pCnpjCpfTransp     = ret.Cpf_transp;
                    fNumero.pPlacaVeiculo      = ret.Placaveiculo;
                    fNumero.pVl_frete          = rNF.ItensNota.Sum(p => p.Vl_freteitem);
                    if (fNumero.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                    {
                        ret.Chave_acesso_nfe = fNumero.pChave_Acesso_NFe;
                        if (!string.IsNullOrEmpty(fNumero.pNr_notafiscal))
                        {
                            ret.Nr_notafiscal = decimal.Parse(fNumero.pNr_notafiscal);
                        }
                        else
                        {
                            ret.Nr_notafiscal = null;
                        }
                        ret.Nr_serie             = fNumero.pNr_serie;
                        ret.Cd_modelo            = fNumero.pCd_modelo;
                        ret.Dt_emissao           = fNumero.pDt_emissao;
                        ret.Dt_saient            = fNumero.pDt_saient;
                        ret.Obsfiscal            = fNumero.pDs_obsfiscal;
                        ret.Dadosadicionais      = fNumero.pDs_dadosadic;
                        ret.Cd_transportadora    = fNumero.pCd_transportadora;
                        ret.Cd_enderecotransp    = fNumero.pCd_endtransportadora;
                        ret.Nm_razaosocialtransp = fNumero.pNm_transportadora;
                        ret.Cpf_transp           = fNumero.pCnpjCpfTransp;
                        ret.Placaveiculo         = fNumero.pPlacaVeiculo;
                        ret.Freteporconta        = fNumero.pTp_frete;
                        ret.Especie                 = fNumero.pEspecie;
                        ret.Quantidade              = fNumero.pQuantidade;
                        ret.Pesobruto               = fNumero.pPsbruto;
                        ret.Pesoliquido             = fNumero.pPsliquido;
                        ret.Vl_frete                = fNumero.pVl_frete;
                        ret.Cd_municipioexecservico = fNumero.pCd_municipioexecservico;
                        ret.Ds_municipioexecservico = fNumero.pNm_municipioexecservico;
                        //Preencher objeto CMI
                        CamadaDados.Fiscal.TRegistro_CadCMI rCmi =
                            CamadaNegocio.Fiscal.TCN_CadCMI.Busca(fNumero.pCd_cmi,
                                                                  string.Empty,
                                                                  string.Empty,
                                                                  string.Empty,
                                                                  string.Empty,
                                                                  string.Empty,
                                                                  false,
                                                                  false,
                                                                  false,
                                                                  false,
                                                                  false,
                                                                  false,
                                                                  false,
                                                                  null)[0];
                        ret.Cminf.Add(new TRegistro_LanFaturamento_CMI()
                        {
                            St_compdevimposto = rCmi.St_compdevimposto,
                            St_complementar   = rCmi.St_complementar,
                            St_devolucao      = rCmi.St_devolucao,
                            St_geraestoque    = rCmi.St_geraestoque,
                            St_mestra         = rCmi.St_mestra,
                            St_simplesremessa = rCmi.St_simplesremessa,
                            St_retorno        = rCmi.St_retorno,
                            St_remessatransp  = "S"
                        });
                        ret.Cd_cmistring   = fNumero.pCd_cmi;
                        ret.Ds_cmi         = rCmi.Ds_cmi;
                        ret.Tp_duplicata   = rCmi.Tp_duplicata;
                        ret.Ds_tpduplicata = rCmi.ds_tpduplicata;
                    }
                    else
                    {
                        throw new Exception("Obrigatorio informar numero da nota fiscal.");
                    }
                }
                if (ret.Nr_notafiscal.HasValue)
                {
                    TRegistro_LanFaturamento rFat = TCN_LanFaturamento.existeNumeroNota(ret.Nr_notafiscal.ToString(),
                                                                                        ret.Nr_serie,
                                                                                        ret.Cd_empresa,
                                                                                        ret.Cd_clifor,
                                                                                        string.Empty,
                                                                                        ret.Tp_nota,
                                                                                        null);
                    if (rFat != null)
                    {
                        if (rFat.St_registro.Trim().ToUpper().Equals("C"))
                        {
                            throw new Exception("Nota Fiscal Nº " + rFat.Nr_notafiscal.ToString() + " ja existe no sistema e se encontra cancelada.\r\n" +
                                                "Para poder utilizar o mesmo numero e necessario excluir a nota fiscal cancelada.\r\n" +
                                                "Dica: Menu FATURAMENTO->Emissão de Notas Fiscais / NFe, localize a nota fiscal cancelada e exclua a mesma.\r\n" +
                                                "Obs.: Para excluir a nota fiscal cancelada é necessario que o usuario tenha permissão.");
                        }
                        else
                        {
                            throw new Exception("Nota Fiscal Nº " + rFat.Nr_notafiscal.ToString() + " ja existe no sistema e se encontra ativa.\r\n" +
                                                "Não é permitido gerar nota fiscal com mesmo numero.");
                        }
                    }
                }
                TCN_LanFaturamento_Item.Busca(rNF.Cd_empresa,
                                              rNF.Nr_lanctofiscal.Value.ToString(),
                                              string.Empty,
                                              null).ForEach(item =>
                {
                    TRegistro_LanFaturamento_Item rItem = new TRegistro_LanFaturamento_Item();
                    rItem.Cd_empresa            = rNF.Cd_empresa;
                    rItem.Cd_produto            = item.Cd_produto;
                    rItem.Cd_local              = item.Cd_local;
                    rItem.Cd_condfiscal_produto = item.Cd_condfiscal_produto;
                    rItem.Cd_unidade            = item.Cd_unidade;
                    rItem.Cd_unidEst            = item.Cd_unidEst;
                    rItem.Nr_pedido             = item.Nr_pedido;
                    rItem.Id_pedidoitem         = item.Id_pedidoitem;
                    rItem.Quantidade            = item.Quantidade;
                    rItem.Quantidade_estoque    = item.Quantidade;
                    rItem.Vl_subtotal           = item.Vl_subtotal;
                    rItem.Vl_subtotal_estoque   = item.Vl_subtotal;
                    rItem.Vl_unitario           = item.Vl_unitario;
                    rItem.Pc_desconto           = item.Pc_desconto;
                    rItem.Vl_desconto           = item.Vl_desconto;
                    rItem.Vl_freteitem          = item.Vl_freteitem;
                    rItem.Pc_juro_fin           = item.Pc_juro_fin;
                    rItem.Vl_juro_fin           = item.Vl_juro_fin;
                    rItem.Vl_outrasdesp         = item.Vl_outrasdesp;
                    rItem.Pc_imposto_Aprox      = item.Pc_imposto_Aprox;
                    rItem.Observacao_item       = item.Observacao_item;
                    //Buscar cfop do item
                    TRegistro_CadCFOP rCfop = null;
                    if (TCN_Mov_X_CFOP.BuscarCFOP(ret.Cd_movimentacaostring,
                                                  item.Cd_condfiscal_produto,
                                                  ret.Cd_uf_clifor.Trim().Equals("99") ? "I" : ret.Cd_uf_clifor.Trim().Equals(ret.Cd_uf_empresa.Trim()) ? "D" : "F",
                                                  (ret.Tp_movimento.Trim().ToUpper().Equals("E") ? ret.Cd_uf_clifor : ret.Cd_uf_empresa),
                                                  (ret.Tp_movimento.Trim().ToUpper().Equals("E") ? ret.Cd_uf_empresa : ret.Cd_uf_clifor),
                                                  ret.Tp_movimento,
                                                  ret.Cd_condfiscal_clifor,
                                                  ret.Cd_empresa,
                                                  ref rCfop,
                                                  null))
                    {
                        rItem.Cd_cfop        = rCfop.CD_CFOP;
                        rItem.Ds_cfop        = rCfop.DS_CFOP;
                        rItem.St_bonificacao = rCfop.St_bonificacaobool;
                    }
                    else
                    {
                        throw new Exception("Não existe CFOP " + (ret.Cd_uf_clifor.Trim().Equals("99") ? "I" : ret.Cd_uf_clifor.Trim().Equals(ret.Cd_uf_empresa.Trim()) ? "dentro estado" : "fora estado") + " configurado para a Movimentação " + ret.Cd_movimentacaostring + " condição fiscal do produto " + item.Cd_condfiscal_produto);
                    }
                    //Procurar Impostos Estaduais para o Item
                    string vObsFiscal       = string.Empty;
                    TList_ImpostosNF lImpUf = TCN_LanFaturamento_Item.procuraImpostosPorUf(ret.Cd_empresa,
                                                                                           (ret.Tp_movimento.Trim().ToUpper().Equals("E") ? ret.Cd_uf_clifor : ret.Cd_uf_empresa),
                                                                                           (ret.Tp_movimento.Trim().ToUpper().Equals("E") ? ret.Cd_uf_empresa : ret.Cd_uf_clifor),
                                                                                           ret.Cd_movimentacaostring,
                                                                                           ret.Tp_movimento,
                                                                                           ret.Cd_condfiscal_clifor,
                                                                                           rItem.Cd_condfiscal_produto,
                                                                                           rItem.Vl_subtotal,
                                                                                           rItem.Quantidade,
                                                                                           ref vObsFiscal,
                                                                                           ret.Dt_emissao,
                                                                                           rItem.Cd_produto,
                                                                                           ret.Tp_nota,
                                                                                           ret.Nr_serie,
                                                                                           null);
                    if (lImpUf.Exists(v => v.Imposto.St_ICMS))
                    {
                        TCN_LanFaturamento_Item.PreencherICMS(lImpUf.Find(v => v.Imposto.St_ICMS), rItem);
                        ret.Obsfiscal += vObsFiscal.Trim();
                    }
                    else if (TCN_LanFaturamento_Item.ObrigImformarICMS(rItem.Cd_produto, ret.Nr_serie, null))
                    {
                        throw new Exception("Erro: Não existe condição fiscal do ICMS.\r\n" +
                                            "Tipo Movimento: " + ret.Tipo_movimento.Trim() + "\r\n" +
                                            "Movimentação: " + ret.Cd_movimentacao.ToString() + "\r\n" +
                                            "Cond. Fiscal Clifor: " + ret.Cd_condfiscal_clifor.Trim() + "\r\n" +
                                            "Cond. Fiscal Produto: " + rItem.Cd_condfiscal_produto.Trim() + "\r\n" +
                                            "UF Origem: " + (ret.Tp_movimento.Trim().ToUpper().Equals("E") ? ret.Uf_clifor.Trim() : ret.Uf_empresa.Trim()) + "\r\n" +
                                            "UF Destino: " + (ret.Tp_movimento.Trim().ToUpper().Equals("E") ? ret.Uf_empresa.Trim() : ret.Uf_clifor.Trim()));
                    }

                    //Procurar impostos sobre os itens da nota fiscal de destino
                    TCN_LanFaturamento_Item.PreencherOutrosImpostos(
                        TCN_LanFaturamento_Item.procuraCondicaoFiscalImpostos(ret.Cd_condfiscal_clifor,
                                                                              rItem.Cd_condfiscal_produto,
                                                                              ret.Cd_movimentacaostring,
                                                                              ret.Tp_movimento,
                                                                              ret.Tp_pessoa,
                                                                              ret.Cd_empresa,
                                                                              ret.Nr_serie,
                                                                              ret.Cd_clifor,
                                                                              rItem.Cd_unidEst,
                                                                              ret.Dt_emissao,
                                                                              rItem.Quantidade,
                                                                              rItem.Vl_subtotal,
                                                                              ret.Tp_nota,
                                                                              ret.Cd_municipioexecservico,
                                                                              null), rItem, ret.Tp_movimento);
                    string obs_ret = string.Empty;
                    string linha   = string.Empty;
                    if (rItem.Vl_ICMSRetido > decimal.Zero)
                    {
                        obs_ret += linha + "ICMS RETIDO " + rItem.Vl_ICMSRetido.ToString("C2", new System.Globalization.CultureInfo("pt-BR"));
                        linha    = "\r\n";
                    }
                    if (rItem.Vl_retidoCofins > decimal.Zero)
                    {
                        obs_ret += linha + "COFINS RETIDO " + rItem.Vl_retidoCofins.ToString("C2", new System.Globalization.CultureInfo("pt-BR"));
                        linha    = "\r\n";
                    }
                    if (rItem.Vl_retidoCSLL > decimal.Zero)
                    {
                        obs_ret += linha + "CSLL RETIDO " + rItem.Vl_retidoCSLL.ToString("C2", new System.Globalization.CultureInfo("pt-BR"));
                        linha    = "\r\n";
                    }
                    if (rItem.Vl_retidoFunrural > decimal.Zero)
                    {
                        obs_ret += linha + "FUNRURAL RETIDO " + rItem.Vl_retidoFunrural.ToString("C2", new System.Globalization.CultureInfo("pt-BR"));
                        linha    = "\r\n";
                    }
                    if (rItem.Vl_retidoINSS > decimal.Zero)
                    {
                        obs_ret += linha + "INSS RETIDO " + rItem.Vl_retidoINSS.ToString("C2", new System.Globalization.CultureInfo("pt-BR"));
                        linha    = "\r\n";
                    }
                    if (rItem.Vl_retidoIRRF > decimal.Zero)
                    {
                        obs_ret += linha + "IRFF RETIDO " + rItem.Vl_retidoIRRF.ToString("C2", new System.Globalization.CultureInfo("pt-BR"));
                        linha    = "\r\n";
                    }
                    if (rItem.Vl_retidoPIS > decimal.Zero)
                    {
                        obs_ret += linha + "PIS RETIDO " + rItem.Vl_retidoPIS.ToString("C2", new System.Globalization.CultureInfo("pt-BR"));
                        linha    = "\r\n";
                    }
                    if (rItem.Vl_retidoSenar > decimal.Zero)
                    {
                        obs_ret += linha + "SENAR RETIDO " + rItem.Vl_retidoSenar.ToString("C2", new System.Globalization.CultureInfo("pt-BR"));
                        linha    = "\r\n";
                    }
                    if (!string.IsNullOrEmpty(obs_ret))
                    {
                        ret.Obsfiscal += (string.IsNullOrEmpty(ret.Obsfiscal) ? string.Empty : "\r\n") + obs_ret.Trim();
                    }
                    ret.ItensNota.Add(rItem);
                });
                ret.rNFVendaRT = rNF;
                return(ret);
            }
            else
            {
                throw new Exception("Não existe configuração fiscal pedido para gerar REMESSA TRANSPORTE.");
            }
        }
コード例 #15
0
 private void ProcDevAquisicao()
 {
     if (bsLoteSemente.Current != null)
     {
         try
         {
             //Processar objeto devolucao/aquisicao
             CamadaDados.Graos.TRegistro_DevAquisicao rDevAquisicao =
                 Proc_Commoditties.TProcessaDevAquisicao.ProcessarDevAquisicao(Cd_empresa,
                                                                               (bsLoteSemente.Current as CamadaDados.Sementes.TRegistro_LoteSemente).Cd_amostra,
                                                                               CamadaNegocio.Estoque.Cadastros.TCN_CadConvUnidade.ConvertUnid(
                                                                                   (bsLoteSemente.Current as CamadaDados.Sementes.TRegistro_LoteSemente).Cd_unidade,
                                                                                   (bsLoteSemente.Current as CamadaDados.Sementes.TRegistro_LoteSemente).Cd_unidamostra,
                                                                                   Qtd_nota, 3, null));
             if (rDevAquisicao != null)
             {
                 CamadaNegocio.Graos.TCN_DevAquisicao.GravarDevAquisicao(rDevAquisicao, null);
                 if (MessageBox.Show("Devolução/Aquisição realizada com sucesso.\r\nDeseja imprimir as notas fiscais?\r\n" +
                                     "Obs.: Somente serão impressas as notas fiscais proprias e não NF-e.", "Pergunta",
                                     MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1)
                     == DialogResult.Yes)
                 {
                     //Buscar nota de origem
                     TRegistro_LanFaturamento rNf =
                         CamadaNegocio.Faturamento.NotaFiscal.TCN_LanFaturamento.BuscarNF(rDevAquisicao.rNfOrigem.Cd_empresa,
                                                                                          rDevAquisicao.rNfOrigem.Nr_lanctofiscalstr,
                                                                                          null);
                     if (rNf.Tp_nota.Trim().ToUpper().Equals("P") && (!rNf.Cd_modelo.Trim().Equals("55")))
                     {
                         //Chamar tela de impressao para a nota fiscal
                         //somente se for nota propria
                         using (FormRelPadrao.TFGerenciadorImpressao fImp = new FormRelPadrao.TFGerenciadorImpressao())
                         {
                             fImp.St_enabled_enviaremail = true;
                             fImp.pCd_clifor             = rNf.Cd_clifor;
                             fImp.pMensagem = "NOTA FISCAL DEVOLUÇÃO Nº" + rNf.Nr_notafiscal.ToString();
                             if ((fImp.ShowDialog() == DialogResult.OK) || (fImp.pSt_enviaremail))
                             {
                                 new FormRelPadrao.LayoutNotaFiscal().Imprime_NF(rNf,
                                                                                 fImp.pSt_imprimir,
                                                                                 fImp.pSt_visualizar,
                                                                                 fImp.pSt_enviaremail,
                                                                                 fImp.pDestinatarios,
                                                                                 "NOTA FISCAL DEVOLUÇÃO Nº " + rNf.Nr_notafiscal.ToString(),
                                                                                 fImp.pDs_mensagem);
                             }
                         }
                     }
                     //Buscar nota fiscal de destino
                     rNf = CamadaNegocio.Faturamento.NotaFiscal.TCN_LanFaturamento.BuscarNF(rDevAquisicao.rNfDestino.Cd_empresa,
                                                                                            rDevAquisicao.rNfDestino.Nr_lanctofiscalstr,
                                                                                            null);
                     if (rNf.Tp_nota.Trim().ToUpper().Equals("P") && (!rNf.Cd_modelo.Trim().Equals("55")))
                     {
                         //Chamar tela de impressao para a nota fiscal
                         //somente se for nota propria
                         using (FormRelPadrao.TFGerenciadorImpressao fImp = new FormRelPadrao.TFGerenciadorImpressao())
                         {
                             fImp.St_enabled_enviaremail = true;
                             fImp.pCd_clifor             = rNf.Cd_clifor;
                             fImp.pMensagem = "NOTA FISCAL AQUISIÇÃO Nº" + rNf.Nr_notafiscal.ToString();
                             if ((fImp.ShowDialog() == DialogResult.OK) || (fImp.pSt_enviaremail))
                             {
                                 new FormRelPadrao.LayoutNotaFiscal().Imprime_NF(rNf,
                                                                                 fImp.pSt_imprimir,
                                                                                 fImp.pSt_visualizar,
                                                                                 fImp.pSt_enviaremail,
                                                                                 fImp.pDestinatarios,
                                                                                 "NOTA FISCAL AQUISIÇÃO Nº " + rNf.Nr_notafiscal.ToString(),
                                                                                 fImp.pDs_mensagem);
                             }
                         }
                     }
                 }
             }
         }
         catch (Exception ex)
         {
             MessageBox.Show(ex.Message.Trim(), "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
         }
     }
 }