Exemplo n.º 1
0
        private void btn_CancelarEntrega_Click(object sender, EventArgs e)
        {
            bool Cancelar = true;

            if (BS_Lancamento_Item.Current != null)
            {
                if ((BS_Lancamento_Item.Current as TRegistro_LanEntregaPedido).ID_Entrega != null)
                {
                    if (Convert.ToDecimal((BS_Lancamento_Item.Current as TRegistro_LanEntregaPedido).ID_Entrega) > 0M)
                    {
                        Cancelar = false;
                    }
                }
            }

            if (Cancelar)
            {
                //HABILITA OS BOTÕES
                QtdEntregue.Enabled    = false;
                dtEntrega.Enabled      = false;
                Nm_Responsavel.Enabled = false;
                Observacao.Enabled     = false;
                QtdEntregue.Text       = "";
                dtEntrega.Text         = "";
                Nm_Responsavel.Text    = "";
                Observacao.Text        = "";

                //GERA UM NOVO REGISTRO NO BIND E GRID
                BS_Lancamento_Item.CancelEdit();
            }
            else
            {
                if (MessageBox.Show("Confirma Exclusão do Registro?", "Mensagem",
                                    MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) ==
                    System.Windows.Forms.DialogResult.Yes)
                {
                    string retorno = TCN_LanEntregaPedido.Deleta_LanEntregaPedido(BS_Lancamento_Item.Current as TRegistro_LanEntregaPedido, null);

                    if (retorno == "OK")
                    {
                        BS_Lancamento_Item.RemoveCurrent();
                        limparDados();
                    }
                    else
                    {
                        MessageBox.Show("Não foi possível cancelar a entrega, provavelmente esta entrega já tem lançamento em estoque!");
                    }
                }
            }
            Busca_Entregue();
        }
Exemplo n.º 2
0
        private void btn_ConfirmarEntrega_Click(object sender, EventArgs e)
        {
            if (AlterarQtdeEntrada)
            {
                //g_Itens.Focus();

                if (Convert.ToDecimal(QtdEntregue.Value) <= 0M)
                {
                    MessageBox.Show("Por favor, informe a quantidade a ser entregue/recebida!");
                    QtdEntregue.Enabled = true;
                    QtdEntregue.Focus();
                }
                else
                if (dtEntrega.Text.Length == 0)
                {
                    MessageBox.Show("Por favor, informe a data de entrega/recebimento!");
                    dtEntrega.Enabled = true;
                    dtEntrega.Focus();
                }
                else
                if (Nm_Responsavel.Text.Length == 0)
                {
                    MessageBox.Show("Por favor, informe o nome do responsável pela entrega/recebimento!");
                    dtEntrega.Enabled = true;
                    Nm_Responsavel.Focus();
                }
                else
                {
                    (BS_Lancamento_Item.Current as TRegistro_LanEntregaPedido).Id_pedidoitem = (BS_Registro_Pedido.Current as TRegistro_LanPedido_Item).Id_pedidoitem;
                    (BS_Lancamento_Item).ResetBindings(true);
                    TCN_LanEntregaPedido.Grava_LanEntregaPedido(BS_Lancamento_Item.Current as TRegistro_LanEntregaPedido, null);

                    //SE TIVER REGISTRO NO ESTOQUE E FOR ALTERADO A QUANTIDADE ENTREGUE ELE ALTERA
                    if ((BS_Lancamento_Item.Current as TRegistro_LanEntregaPedido).CD_Empresa != "" &&
                        (BS_Lancamento_Item.Current as TRegistro_LanEntregaPedido).CD_Produto != "" &&
                        (BS_Lancamento_Item.Current as TRegistro_LanEntregaPedido).ID_LanctoEstoque != 0)
                    {
                        TCN_LanEntregaPedido.Altera_LanEntregaPedido(BS_Lancamento_Item.Current as TRegistro_LanEntregaPedido, null);
                    }
                    AlterarQtdeEntrada = false;
                    Busca_Entregue();
                }
            }
        }
Exemplo n.º 3
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();
                }
            }
        }