示例#1
0
        public static string GravarColEnt(TRegistro_ColetaEntrega val, 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);
                });
                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();
                }
            }
        }
示例#2
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();
                }
            }
        }