public static string CancelarPreVenda(TRegistro_PreVenda val, BancoDados.TObjetoBanco banco) { bool st_transacao = false; TCD_PreVenda qtb_orc = new TCD_PreVenda(); try { if (banco == null) { st_transacao = qtb_orc.CriarBanco_Dados(true); } else { qtb_orc.Banco_Dados = banco; } val.lItens.ForEach(p => { p.st_registro = "C"; TCN_PreVenda_Item.Gravar(p, qtb_orc.Banco_Dados); }); val.st_ativo = "C"; qtb_orc.Gravar(val); if (st_transacao) { qtb_orc.Banco_Dados.Commit_Tran(); } return("OK"); } catch (Exception ex) { if (st_transacao) { qtb_orc.Banco_Dados.RollBack_Tran(); } throw new Exception("Erro excluir pre venda: " + ex.Message.Trim()); } finally { if (st_transacao) { qtb_orc.deletarBanco_Dados(); } } }
public static string Excluir(TRegistro_PreVenda val, BancoDados.TObjetoBanco banco) { bool st_transacao = false; TCD_PreVenda qtb_orc = new TCD_PreVenda(); try { if (banco == null) { st_transacao = qtb_orc.CriarBanco_Dados(true); } else { qtb_orc.Banco_Dados = banco; } //Verificar se venda possui cupom emitido pelo delivery if (new TCD_ItensPreVenda_X_ItensCupom(qtb_orc.Banco_Dados).BuscarEscalar( new TpBusca[] { new TpBusca() { vNM_Campo = "a.CD_Empresa", vOperador = "=", vVL_Busca = "'" + val.Cd_empresa.Trim() + "'" }, new TpBusca() { vNM_Campo = "a.ID_PreVenda", vOperador = "=", vVL_Busca = val.id_prevenda.ToString() }, new TpBusca() { vNM_Campo = string.Empty, vOperador = "exists", vVL_Busca = "(select 1 from TB_PDV_NFCe x " + "where x.cd_empresa = a.cd_empresa " + "and x.id_nfce = a.id_cupom) " } }, "1") == null) { //Se não tiver excluir venda rápida CamadaDados.Faturamento.PDV.TList_VendaRapida lVendaRapida = new CamadaDados.Faturamento.PDV.TCD_VendaRapida(qtb_orc.Banco_Dados).Select( new TpBusca[] { new TpBusca() { vNM_Campo = string.Empty, vOperador = "exists", vVL_Busca = "(select 1 from TB_RES_ItensPreVenda_X_ItensCupom x " + "where x.cd_empresa = a.cd_empresa " + "and x.id_vendarapida = a.id_vendarapida " + "and x.cd_empresa = '" + val.Cd_empresa.Trim() + "' " + "and x.id_prevenda = " + val.id_prevenda.ToString() + ") " } }, 0, string.Empty, string.Empty); //Exclui Venda Rápida if (lVendaRapida.Count > 0) { Faturamento.PDV.TCN_VendaRapida.ExcluirVendaRapida(lVendaRapida, qtb_orc.Banco_Dados); } } else { throw new Exception("Não é permitido cancelar venda que possui cupom fiscal!\r\n" + "Para excluir cupom fiscal acesse:\r\n" + "Faturamento>>Frente Caixa>>>Consulta - Venda Frente Caixa."); } val.lDelItens.ForEach(p => { p.st_registro = "C"; TCN_PreVenda_Item.Gravar(p, qtb_orc.Banco_Dados); }); val.lItens.ForEach(p => { p.st_registro = "C"; TCN_PreVenda_Item.Gravar(p, qtb_orc.Banco_Dados); }); //St_registro val.st_ativo = "C"; //Cancelamento do cartao qtb_orc.executarEscalar("update TB_RES_Cartao " + "set ST_Registro = 'C' " + "where ID_Cartao = " + val.id_cartao + " " + "update TB_RES_Cartao " + "set dt_fechamento = GETDATE() " + "where ID_Cartao = " + val.id_cartao + " ", null); qtb_orc.Gravar(val); if (st_transacao) { qtb_orc.Banco_Dados.Commit_Tran(); } return("OK"); } catch (Exception ex) { if (st_transacao) { qtb_orc.Banco_Dados.RollBack_Tran(); } throw new Exception("Erro excluir pre venda: " + ex.Message.Trim()); } finally { if (st_transacao) { qtb_orc.deletarBanco_Dados(); } } }
public static string Gravar(TRegistro_PreVenda val, BancoDados.TObjetoBanco banco) { bool st_transacao = false; TCD_PreVenda qtb_pre = new TCD_PreVenda(); try { if (banco == null) { st_transacao = qtb_pre.CriarBanco_Dados(true); } else { qtb_pre.Banco_Dados = banco; } val.Id_prevendastr = CamadaDados.TDataQuery.getPubVariavel(qtb_pre.Gravar(val), "@P_ID_PREVENDA"); //Gravar itens venda val.lItensDel.ForEach(p => TCN_ItensPreVenda.Excluir(p, qtb_pre.Banco_Dados)); val.lItens.ForEach(p => { p.Cd_empresa = val.Cd_empresa; p.Id_prevenda = val.Id_prevenda; TCN_ItensPreVenda.Gravar(p, qtb_pre.Banco_Dados); }); //Excluir financeiro TList_PreVenda_DT_Vencto lParc = TCN_PreVenda_DT_Vencto.Buscar(val.Id_prevendastr, val.Cd_empresa, qtb_pre.Banco_Dados); lParc.ForEach(p => TCN_PreVenda_DT_Vencto.Excluir(p, qtb_pre.Banco_Dados)); //Gravar financeiro val.DT_Vencto.ForEach(p => { p.Cd_empresa = val.Cd_empresa; p.Id_prevenda = val.Id_prevenda; TCN_PreVenda_DT_Vencto.Gravar(p, qtb_pre.Banco_Dados); }); //Resgatar Pontos Fidelidade if (val.lItens.Exists(p => p.Qtd_pontosutilizados > decimal.Zero)) { //Buscar listagem de pontos com saldo a recuperar CamadaDados.Faturamento.Fidelizacao.TList_PontosFidelidade lPontos = new CamadaDados.Faturamento.Fidelizacao.TCD_PontosFidelidade(qtb_pre.Banco_Dados).Select( new TpBusca[] { new TpBusca() { vNM_Campo = "a.cd_empresa", vOperador = "=", vVL_Busca = "'" + val.Cd_empresa.Trim() + "'" }, new TpBusca() { vNM_Campo = "a.cd_clifor", vOperador = "=", vVL_Busca = "'" + val.Cd_clifor.Trim() + "'" }, new TpBusca() { vNM_Campo = string.Empty, vOperador = string.Empty, vVL_Busca = "a.dt_validade is null or convert(datetime, floor(convert(decimal(30,10), a.dt_validade))) >= convert(datetime, floor(convert(decimal(30,10), getdate())))" }, new TpBusca() { vNM_Campo = "isnull(a.st_registro, 'A')", vOperador = "<>", vVL_Busca = "'C'" } }, 0, string.Empty, string.Empty); val.lItens.Where(p => p.Qtd_pontosutilizados > decimal.Zero).ToList().ForEach(p => { decimal pontos_resgatar = p.Qtd_pontosutilizados; decimal pontos = decimal.Zero; DateTime dt_atual = CamadaDados.UtilData.Data_Servidor(qtb_pre.Banco_Dados); foreach (CamadaDados.Faturamento.Fidelizacao.TRegistro_PontosFidelidade rPonto in lPontos.OrderBy(v => v.Dt_registro).ToList()) { if (pontos_resgatar > decimal.Zero) { pontos = pontos_resgatar < rPonto.SD_Pontos ? pontos_resgatar : rPonto.SD_Pontos; CamadaNegocio.Faturamento.Fidelizacao.TCN_ResgatePontos.Gravar( new CamadaDados.Faturamento.Fidelizacao.TRegistro_ResgatePontos() { Cd_empresa = rPonto.Cd_empresa, Id_ponto = rPonto.Id_ponto, Login = Utils.Parametros.pubLogin, Qt_pontos = pontos, Dt_resgate = dt_atual, Id_prevenda = val.Id_prevenda, Id_itemprevenda = p.Id_itemprevenda, St_registro = "A" }, qtb_pre.Banco_Dados); pontos_resgatar -= pontos; rPonto.Pontos_res += pontos; } else { break; } } }); } if (st_transacao) { qtb_pre.Banco_Dados.Commit_Tran(); } return(val.Id_prevendastr); } catch (Exception ex) { if (st_transacao) { qtb_pre.deletarBanco_Dados(); } throw new Exception("Erro gravar venda: " + ex.Message.Trim()); } finally { if (st_transacao) { qtb_pre.deletarBanco_Dados(); } } }
public static string Gravar(TRegistro_PreVenda val, BancoDados.TObjetoBanco banco) { bool st_transacao = false; TCD_PreVenda qtb_orc = new TCD_PreVenda(); try { if (banco == null) { st_transacao = qtb_orc.CriarBanco_Dados(true); } else { qtb_orc.Banco_Dados = banco; } string ret = qtb_orc.Gravar(val); val.id_prevenda = Convert.ToDecimal(CamadaDados.TDataQuery.getPubVariavel(ret, "@P_ID_PREVENDA")); //Comentado pos item já esta sendo cancelado pela tela de pre-venda do restaurante, //Código poderá ser reaproveitado quando item não for gravado na hora do lançamento. //val.lDelItens.ForEach(p => //{ // p.id_prevenda = val.id_prevenda; // TCN_PreVenda_Item.Excluir(p, qtb_orc.Banco_Dados); //}); val.lItens.ForEach(p => { p.id_prevenda = val.id_prevenda; TCN_PreVenda_Item.Gravar(p, qtb_orc.Banco_Dados); p.lSabores.ForEach(o => { o.Id_PreVenda = val.id_prevenda; o.Cd_Empresa = val.Cd_empresa; if (!string.IsNullOrEmpty(o.Id_ItemStr)) { TCN_SaboresItens.Gravar(o, qtb_orc.Banco_Dados); } }); }); if (st_transacao) { qtb_orc.Banco_Dados.Commit_Tran(); } return(val.id_prevenda.ToString()); } catch (Exception ex) { if (st_transacao) { qtb_orc.Banco_Dados.RollBack_Tran(); } throw new Exception("Erro gravar pre venda: " + ex.Message.Trim()); } finally { if (st_transacao) { qtb_orc.deletarBanco_Dados(); } } }
public static void Excluir(List <TRegistro_PreVenda> val, BancoDados.TObjetoBanco banco) { bool st_transacao = false; TCD_PreVenda qtb_pre = new TCD_PreVenda(); try { if (banco == null) { st_transacao = qtb_pre.CriarBanco_Dados(true); } else { qtb_pre.Banco_Dados = banco; } val.ForEach(p => { //Verificar se prevenda possui faturamento object obj = new TCD_VendaRapida(qtb_pre.Banco_Dados).BuscarEscalar( new TpBusca[] { new TpBusca { vNM_Campo = "isnull(a.st_registro, 'A')", vOperador = "<>", vVL_Busca = "'C'" }, new TpBusca { vNM_Campo = string.Empty, vOperador = "exists", vVL_Busca = "(select 1 from tb_pdv_prevenda_x_vendarapida x " + "where x.cd_empresa = a.cd_empresa " + "and x.id_cupom = a.id_vendarapida " + "and x.cd_empresa = '" + p.Cd_empresa.Trim() + "' " + "and x.id_prevenda = " + p.Id_prevendastr + ")" } }, "a.Id_Cupom"); if (obj != null) { throw new Exception("Item Pre Venda Nº" + p.Id_prevendastr + " esta faturado.\r\n" + "Para excluir o item, necessario estornar venda Nº" + obj.ToString() + "."); } //Verificar se prevenda tem item com origem locacao if (new TCD_ItensPreVenda(qtb_pre.Banco_Dados).BuscarEscalar( new TpBusca[] { new TpBusca() { vNM_Campo = string.Empty, vOperador = string.Empty, vVL_Busca = "(exists(select 1 from tb_fat_locacao_x_prevenda x " + " where x.cd_empresa = '" + p.Cd_empresa.Trim() + "'" + " and x.id_prevenda = " + p.Id_prevendastr + ") or " + "exists(select 1 from tb_fat_itenslocacao_x_prevenda x " + " where x.cd_empresa = " + p.Cd_empresa.Trim() + "'" + " and x.id_prevenda = " + p.Id_prevendastr + "))" } }, "1") != null) { throw new Exception("Item Pre Venda Nº" + p.Id_prevendastr + " teve origem Locação.\r\n" + "Para excluir o item, necessario estornar processamento locação."); } //Verificar se prevenda possui romaneio entrega new CamadaDados.Faturamento.Entrega.TCD_RomaneioEntrega(qtb_pre.Banco_Dados).Select( new TpBusca[] { new TpBusca() { vNM_Campo = string.Empty, vOperador = "exists", vVL_Busca = "(select 1 from tb_fat_itensromaneio x " + "where x.cd_empresa = a.cd_empresa " + "and x.id_romaneio = a.id_romaneio " + "and x.cd_empresa = '" + p.Cd_empresa.Trim() + "' " + "and x.id_prevenda = " + p.Id_prevendastr + ")" } }, 0, string.Empty).ForEach(v => Entrega.TCN_RomaneioEntrega.Excluir(v, qtb_pre.Banco_Dados)); //Verificar se Pré-venda possui OS new CamadaDados.Servicos.TCD_Pecas_X_PreVenda(qtb_pre.Banco_Dados).Select( new TpBusca[] { new TpBusca() { vNM_Campo = string.Empty, vOperador = "exists", vVL_Busca = "(select 1 from VTB_PDV_ITENSPREVENDA x " + "where a.id_itemprevenda = x.id_itemprevenda " + "and a.cd_empresa = '" + p.Cd_empresa.Trim() + "'" + "and a.id_prevenda = " + p.Id_prevendastr + ")" } }, 0, string.Empty).ForEach(x => Servicos.TCN_Pecas_X_PreVenda.Excluir(x, qtb_pre.Banco_Dados)); //Verificar se Pré-venda possui Locação - Modulo Locação new CamadaDados.Locacao.TCD_Itens_X_PreVenda(qtb_pre.Banco_Dados).Select( new TpBusca[] { new TpBusca() { vNM_Campo = string.Empty, vOperador = "exists", vVL_Busca = "(select 1 from VTB_PDV_ITENSPREVENDA x " + "where a.id_itemprevenda = x.id_itemprevenda " + "and a.cd_empresa = '" + p.Cd_empresa.Trim() + "'" + "and a.id_prevenda = " + p.Id_prevendastr + ")" } }, 0, string.Empty).ForEach(x => CamadaNegocio.Locacao.TCN_Itens_X_PreVenda.Excluir(x, qtb_pre.Banco_Dados)); //Cancelar Resgate Pontos Fidelizacao.TCN_ResgatePontos.Buscar(p.Cd_empresa, string.Empty, string.Empty, string.Empty, p.Id_prevendastr, string.Empty, string.Empty, string.Empty, qtb_pre.Banco_Dados).ForEach(v => { v.St_registro = "C"; v.Logincanc = Parametros.pubLogin; Fidelizacao.TCN_ResgatePontos.Gravar(v, qtb_pre.Banco_Dados); }); p.St_registro = "C"; qtb_pre.Gravar(p); }); if (st_transacao) { qtb_pre.Banco_Dados.Commit_Tran(); } }catch (Exception ex) { if (st_transacao) { qtb_pre.Banco_Dados.RollBack_Tran(); } throw new Exception("Erro excluir venda: " + ex.Message.Trim()); }finally { if (st_transacao) { qtb_pre.deletarBanco_Dados(); } } }