Пример #1
0
        private void afterBusca()
        {
            string status = string.Empty;
            string virg   = string.Empty;

            if (cbxAberto.Checked)
            {
                status = "'A'";
                virg   = ",";
            }
            if (cbxRetirado.Checked)
            {
                status += virg + "'R'";
                virg    = ",";
            }
            if (cbxDevolvido.Checked)
            {
                status += virg + "'D'";
            }
            bsLocacao.DataSource = TCN_Locacao.buscar(Cd_empresa.Text,
                                                      Id_locacao.Text,
                                                      Cd_clifor.Text,
                                                      rbDtLocacao.Checked ? "L" : rdDtRetirada.Checked ? "R" :
                                                      rbDtPrevDev.Checked ? "P" : rbDevolucao.Checked ? "D" : string.Empty,
                                                      dt_ini.Text,
                                                      dt_fin.Text,
                                                      status,
                                                      null);
            bsLocacao_PositionChanged(this, new EventArgs());
        }
Пример #2
0
 private void afterExclui()
 {
     if (bsLocacao.Current != null)
     {
         if (MessageBox.Show("Confirma exclusão da Locacao selecionada?", "Pergunta", MessageBoxButtons.YesNo,
                             MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) == DialogResult.Yes)
         {
             try
             {
                 TCN_Locacao.Excluir(bsLocacao.Current as TRegistro_Locacao, null);
                 MessageBox.Show("Locacao excluida com sucesso.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                 this.afterBusca();
             }
             catch (Exception ex)
             { MessageBox.Show(ex.Message.Trim(), "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); }
         }
     }
 }
Пример #3
0
 private void DevolverLocacao()
 {
     if (bsLocacao.Current != null)
     {
         if ((bsLocacao.Current as TRegistro_Locacao).St_registro.Trim().Equals("A"))
         {
             MessageBox.Show("Não é permitido DEVOLVER locação ABERTA.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
             return;
         }
         if ((bsLocacao.Current as TRegistro_Locacao).St_registro.Trim().ToUpper().Equals("D"))
         {
             MessageBox.Show("Locação ja se encontra DEVOLVIDA.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
             return;
         }
         using (TFDevolverLocacao fDevolver = new TFDevolverLocacao())
         {
             fDevolver.rLocacao = bsLocacao.Current as TRegistro_Locacao;
             if (fDevolver.ShowDialog() == DialogResult.OK)
             {
                 if (fDevolver.rLocacao != null)
                 {
                     try
                     {
                         CamadaDados.Faturamento.PDV.TRegistro_PreVenda rPreVenda = null;
                         TCN_Locacao.DevolverLocacao(fDevolver.rLocacao, ref rPreVenda, null);
                         MessageBox.Show("Locação devolvida com sucesso.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                         this.LimpaFiltros();
                         Id_locacao.Text = fDevolver.rLocacao.Id_locacaostr;
                         Cd_empresa.Text = fDevolver.rLocacao.Cd_empresa;
                         this.afterBusca();
                     }
                     catch (Exception ex)
                     { MessageBox.Show(ex.Message.Trim(), "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); }
                 }
             }
         }
     }
 }
Пример #4
0
        public static string Gravar(TRegistro_ColetaEntrega val, TRegistro_Locacao rLoc, BancoDados.TObjetoBanco banco)
        {
            bool st_transacao             = false;
            TCD_ColetaEntrega qtb_locacao = new TCD_ColetaEntrega();

            try
            {
                if (banco == null)
                {
                    st_transacao = qtb_locacao.CriarBanco_Dados(true);
                }
                else
                {
                    qtb_locacao.Banco_Dados = banco;
                }
                val.Id_coletastr = CamadaDados.TDataQuery.getPubVariavel(qtb_locacao.Gravar(val), "@P_ID_COLETA");
                //Gravar Vistoria
                val.lVistoria.ForEach(p =>
                {
                    p.Id_coleta = val.Id_coletastr;
                    TCN_Vistoria.Gravar(p, qtb_locacao.Banco_Dados);
                });
                //Gravar Itens Locação
                if (rLoc.lItens != null)
                {
                    if (rLoc.lItens.Count > 0)
                    {
                        rLoc.lItens.FindAll(p => p.St_processar).ForEach(p =>
                        {
                            if (val.Tp_mov.ToUpper().Equals("E"))
                            {
                                p.Dt_retirada = CamadaDados.UtilData.Data_Servidor();
                            }
                            else
                            {
                                p.Dt_devolucao = string.IsNullOrEmpty(p.Dt_devolucaostr) ? CamadaDados.UtilData.Data_Servidor() : p.Dt_devolucao;
                                //Gravar devolução de patrimonio
                                TCN_DevItensLocacao.Gravar(new TRegistro_DevItensLocacao()
                                {
                                    Cd_empresa    = p.Cd_empresa,
                                    Id_locacao    = p.Id_locacao,
                                    Id_itemloc    = p.Id_itemloc,
                                    Qtd_baixada   = p.St_baixa ? p.SaldoDevolver : decimal.Zero,
                                    Qtd_devolvida = p.Qtd_devolver > 0 ? p.Qtd_devolver : p.QTDItem
                                }, qtb_locacao.Banco_Dados);
                                //Verificar se Patrimonio é quantidade 1 para cancelar senão pular processo
                                if (p.St_baixa)
                                {
                                    System.Collections.Hashtable hs = new System.Collections.Hashtable();
                                    hs.Add("@SALDO", p.SaldoDevolver);
                                    hs.Add("@PRODUTO", p.Cd_produto);
                                    qtb_locacao.executarSql(p.Qtd_Patrimonio > 1 ? "update TB_EST_Patrimonio set Quantidade = Quantidade - @SALDO " +
                                                            "where cd_patrimonio = @PRODUTO " +
                                                            "and quantidade > 1 " :
                                                            "update TB_EST_Produto set St_registro = 'C' " +
                                                            "where cd_produto = @PRODUTO ", hs);
                                }
                            }
                            //Gravar Itens
                            TCN_ItensLocacao.Gravar(p, qtb_locacao.Banco_Dados);
                        });
                    }
                    //Gravar Locação
                    if (val.Tp_mov.Trim().ToUpper().Equals("E"))
                    {
                        rLoc.St_registro = "2";
                        //Mudar Status para ENTREGUE
                        qtb_locacao.executarSql("update TB_LOC_Locacao set st_registro = '" + rLoc.St_registro + "', dt_alt = getdate() " +
                                                "where isnull(ST_Registro, '0') = '0' " +
                                                "and ID_Locacao = " + rLoc.Id_locacaostr, null);
                    }
                    else
                    {
                        //Verificar se tem item com data de devolucao null
                        if (new TCD_ItensLocacao(qtb_locacao.Banco_Dados).BuscarEscalar(
                                new TpBusca[]
                        {
                            new TpBusca {
                                vNM_Campo = "a.cd_empresa", vOperador = "=", vVL_Busca = "'" + rLoc.Cd_empresa.Trim() + "'"
                            },
                            new TpBusca {
                                vNM_Campo = "a.id_locacao", vOperador = "=", vVL_Busca = rLoc.Id_locacaostr
                            },
                            new TpBusca {
                                vNM_Campo = "a.dt_devolucao", vOperador = "is", vVL_Busca = "null"
                            }
                        }, "1") != null)
                        {
                            if (rLoc.St_registro.Trim().Equals("2"))
                            {
                                rLoc.St_registro = "10";
                                //Trocar status para devolucao parcial
                                qtb_locacao.executarSql("update TB_LOC_Locacao set st_registro = '" + rLoc.St_registro + "', dt_alt = getdate() " +
                                                        "where ID_Locacao = " + rLoc.Id_locacaostr, null);
                            }
                            else if (rLoc.St_registro.Trim().Equals("3") || rLoc.St_registro.Trim().Equals("4"))
                            {
                                rLoc.St_registro = "6";
                                //Trocar status para devolucao parcial
                                qtb_locacao.executarSql("update TB_LOC_Locacao set st_registro = '" + rLoc.St_registro + "', dt_alt = getdate() " +
                                                        "where ID_Locacao = " + rLoc.Id_locacaostr, null);
                            }
                        }
                        else
                        {
                            if (rLoc.St_registro.Trim().Equals("2") || rLoc.St_registro.Trim().Equals("10"))
                            {
                                rLoc.St_registro = "9";
                                //Trocar status para aguardando faturamento
                                qtb_locacao.executarSql("update TB_LOC_Locacao set st_registro = '" + rLoc.St_registro + "', dt_alt = getdate() " +
                                                        "where ID_Locacao = " + rLoc.Id_locacaostr, null);
                            }
                            else if (rLoc.St_registro.Trim().Equals("4") || rLoc.St_registro.Trim().Equals("6"))
                            {
                                rLoc.St_registro = "7";
                                //Trocar status para devolvido
                                qtb_locacao.executarSql("update TB_LOC_Locacao set st_registro = '" + rLoc.St_registro + "', dt_alt = getdate() " +
                                                        "where ID_Locacao = " + rLoc.Id_locacaostr, null);
                            }
                        }
                    }
                }
                if (val.Tp_mov.ToUpper().Equals("C"))
                {
                    //Devolver Acessórios
                    TCN_Locacao.DevolverAcessorios(rLoc, qtb_locacao.Banco_Dados);
                    //Faturar Locação
                    if (rLoc.St_registro != "9")
                    {
                        TCN_Locacao.Faturar(rLoc, qtb_locacao.Banco_Dados);
                    }
                }
                if (st_transacao)
                {
                    qtb_locacao.Banco_Dados.Commit_Tran();
                }
                return(val.Id_coletastr);
            }
            catch (Exception ex)
            {
                if (st_transacao)
                {
                    qtb_locacao.Banco_Dados.RollBack_Tran();
                }
                throw new Exception("Erro gravar coleta/entrega: " + ex.Message.Trim());
            }
            finally
            {
                if (st_transacao)
                {
                    qtb_locacao.deletarBanco_Dados();
                }
            }
        }