コード例 #1
0
        private void cmdCancelarNFe_Click(object sender, EventArgs e)
        {
            DataRowView row = (DataRowView)BindingSource[MainTabela].Current;
            IList <Dados_Arquivo_NFe> ilNotas = new List <Dados_Arquivo_NFe>();

            Dados_Arquivo_NFe daNFe = new Dados_Arquivo_NFe();

            daNFe.Carregar_Dados(Convert.ToInt32(row["Nota_Fiscal_Lote"]));

            ilNotas.Add(daNFe);

            ERP.NFe.NFe nfe = new ERP.NFe.NFe();
            nfe.Cancelar_NFe(ilNotas);

            Atualizar_Query_Atual();

            //-- Atualiza

            //-- Exclui o titulo a receber.
            Funcoes func;

            if (!string.IsNullOrEmpty(txtProtocoloCancelamento.Text) && Convert.ToBoolean(func.Busca_Propriedade("Gera_Consiliacao_Automatica")))
            {
                Financeiro.ConsiliacaoFinanceira cf = new Financeiro.ConsiliacaoFinanceira();
                cf.Excluir_ContaReceber(daNFe.Nota_Fiscal);
            }
        }
コード例 #2
0
        private void f0005_user_AfterSave()
        {
            //-- Em caso de cancelamento de nota fiscal
            if (this.chkNFCancelada.Checked)
            {
                //clsControleEstoque ceEstoque = new clsControleEstoque();
                int iNumero_Pedido      = 0,
                    iCodigo_mov_estoque = 0;
                string sQuery           = string.Empty,
                       sDescricao       = string.Empty;

                DataRowView rVnf = (DataRowView)this.BindingSource[this.MainTabela].Current;
                iNumero_Pedido = Convert.ToInt32(rVnf["Pedido"]);

                //-- cancelamento de pedido
                sQuery = string.Format("UPDATE pedidos SET cancelado = 1 WHERE pedido = {0}", iNumero_Pedido);
                SQL.Execute(sQuery);

                //-- Gravacao de movimento estoque capa
                sDescricao          = string.Format("Cancelamento Nota fiscal ", rVnf["Numero_Nota"]);
                iCodigo_mov_estoque = this.ceEstoque.Registra_Movimento_Estoque(
                    (int)clsControleEstoque.Tipo_Movimento_Estoque.Entrada,
                    Convert.ToInt32(rVnf["Empresa"]),
                    Convert.ToInt32(rVnf["Cliente"]),
                    Convert.ToString(rVnf["Numero_Nota"]),
                    sDescricao,
                    DateTime.Now,
                    Convert.ToDecimal(rVnf["Valor_Total_Nota"]));

                sQuery = string.Format("nota_fiscal = {0}", Convert.ToString(rVnf["Numero_Nota"]));

                //-- Filtra itens da nota fiscal atual
                DataView dvinf = new DataView(this.DataSetLocal.Tables["Notas_Fiscais_Itens"]
                                              , sQuery
                                              , "nota_fiscal_item"
                                              , DataViewRowState.CurrentRows);

                foreach (DataRowView datarowviewinf in dvinf)
                {
                    //-- Gravacao de movimento estoque item
                    this.ceEstoque.Registra_Movimento_Estoque_Item(
                        iCodigo_mov_estoque,
                        Convert.ToInt32(datarowviewinf["Produto"]),
                        Convert.ToDecimal(datarowviewinf["Valor_Unitario"]),
                        Convert.ToInt32(datarowviewinf["Quantidade"]),
                        Convert.ToDecimal(datarowviewinf["Valor_Total_Item"]));

                    if (clsControleEstoque.Baixa_estoque_manual)
                    {
                        //-- Reinsercao do item do estoque
                        this.ceEstoque.Cancelamento_Item_Nota_Fiscal(
                            Convert.ToInt32(rVnf["Empresa"]),
                            Convert.ToInt32(datarowviewinf["Produto"]),
                            Convert.ToInt32(datarowviewinf["Quantidade"]));
                    }
                }

                if (this.chkNFExportada.Checked)
                {
                    sQuery  = string.Empty;
                    sQuery += "select nfl.Nota_Fiscal_Lote";
                    sQuery += " from notas_fiscais_lotes_itens nfli";
                    sQuery += "  inner join notas_fiscais nf on nf.nota_fiscal = nfli.nota_fiscal";
                    sQuery += "  inner join notas_fiscais_lotes nfl on nfl.nota_fiscal_lote = nfli.nota_fiscal_lote";
                    sQuery += " where ";
                    sQuery += "  nfl.tipo_nfe = 1";
                    sQuery += "  and nfl.codigo_mensagem_retorno_nfe = 100";
                    sQuery += "  and nf.nota_fiscal = " + rVnf["Nota_Fiscal"].ToString();
                    object oValor = SQL.ExecuteScalar(sQuery);

                    if (oValor != DBNull.Value)
                    {
                        //-- Cancela NF-e.
                        IList <CompSoft.NFe.Dados_Arquivo_NFe> ilNotas = new List <CompSoft.NFe.Dados_Arquivo_NFe>();
                        CompSoft.NFe.Dados_Arquivo_NFe         daNFe   = new CompSoft.NFe.Dados_Arquivo_NFe();
                        ERP.NFe.NFe nfe = new ERP.NFe.NFe();

                        daNFe.Carregar_Dados(Convert.ToInt32(oValor));
                        ilNotas.Add(daNFe);
                        nfe.Cancelar_NFe(ilNotas);
                    }
                }

                //-- Exclui o titulo a receber.
                Funcoes func;
                if (Convert.ToBoolean(func.Busca_Propriedade("Gera_Consiliacao_Automatica")))
                {
                    Financeiro.ConsiliacaoFinanceira cf = new Financeiro.ConsiliacaoFinanceira();
                    cf.Excluir_ContaReceber(Convert.ToInt32(rVnf["Nota_Fiscal"]));
                }
            }
        }