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(); }
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(); } } }
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(); } } }