public static string Gravar(TList_EntregaPedido val, TObjetoBanco banco) { bool st_transacao = false; TCD_EntregaPedido qtb_entrega = new TCD_EntregaPedido(); try { if (banco == null) { st_transacao = qtb_entrega.CriarBanco_Dados(true); } else { qtb_entrega.Banco_Dados = banco; } val.ForEach(p => { p.Dt_entrega = CamadaDados.UtilData.Data_Servidor(); Gravar(p, qtb_entrega.Banco_Dados); }); if (st_transacao) { qtb_entrega.Banco_Dados.Commit_Tran(); } return("OK"); } catch (Exception ex) { if (st_transacao) { qtb_entrega.Banco_Dados.RollBack_Tran(); } throw new Exception("Erro gravar entrega: " + ex.Message.Trim()); } finally { if (st_transacao) { qtb_entrega.deletarBanco_Dados(); } } }
public static string GravarRecontagem(TList_EntregaPedido val, BancoDados.TObjetoBanco banco) { string retorno = string.Empty; bool st_transacao = false; TCD_EntregaPedido qtb_entrega = new TCD_EntregaPedido(); try { if (banco == null) { st_transacao = qtb_entrega.CriarBanco_Dados(true); } else { qtb_entrega.Banco_Dados = banco; } val.ForEach(p => { if (p.St_recontar) { //Verificar se a conferencia ja nao foi utilizada pelo faturamento object obj = new CamadaDados.Faturamento.NotaFiscal.TCD_Faturamento_Item_X_Estoque(qtb_entrega.Banco_Dados).BuscarEscalar( new TpBusca[] { new TpBusca() { vNM_Campo = "a.id_entrega", vOperador = "=", vVL_Busca = p.Id_entrega.Value.ToString() } }, "1"); if (obj == null) { p.St_registro = "R"; qtb_entrega.Gravar(p); } else { retorno += "Id. Entrega: " + p.Id_entrega.Value.ToString() + "\r\n"; } } }); if (st_transacao) { qtb_entrega.Banco_Dados.Commit_Tran(); } if (retorno.Trim() != string.Empty) { retorno = "As seguintes entregas ja foram consumidas pelo faturamento, portanto não podem mais ser recontadas.\r\n" + retorno.Trim(); } return(retorno); } catch (Exception ex) { if (st_transacao) { qtb_entrega.Banco_Dados.RollBack_Tran(); } throw new Exception("Erro recontar: " + ex.Message.Trim()); } finally { if (st_transacao) { qtb_entrega.deletarBanco_Dados(); } } }
public static string EstornarConferenciaPedido(TList_EntregaPedido val, BancoDados.TObjetoBanco banco) { bool st_transacao = false; string retorno = string.Empty; TCD_EntregaPedido qtb_entrega = new TCD_EntregaPedido(); try { if (banco == null) { st_transacao = qtb_entrega.CriarBanco_Dados(true); } else { qtb_entrega.Banco_Dados = banco; } val.ForEach(p => { if (p.St_registro.Trim().ToUpper().Equals("P")) { //Verificar se a reserva ja foi faturada object obj = new CamadaDados.Faturamento.NotaFiscal.TCD_LanFaturamento(qtb_entrega.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_fat_notafiscal_item_x_estoque x " + "where x.cd_empresa = a.cd_empresa " + "and x.nr_lanctofiscal = a.nr_lanctofiscal " + "and x.id_entrega = " + p.Id_entrega.Value.ToString() + ")" } }, "a.nr_notafiscal"); if (obj == null) { p.St_registro = "A"; p.Qtd_entregue = decimal.Zero; p.Login = string.Empty; Gravar(p, qtb_entrega.Banco_Dados); } else { retorno += "Entrega: " + p.Id_entrega.ToString() + " ja se encontra faturada.\r\n" + "Nota Fiscal: " + obj.ToString().Trim() + "\r\n"; } } }); if (st_transacao) { qtb_entrega.Banco_Dados.Commit_Tran(); } return(retorno); } catch (Exception ex) { if (st_transacao) { qtb_entrega.Banco_Dados.RollBack_Tran(); } throw new Exception("Erro estornar conferencia: " + ex.Message.Trim()); } finally { if (st_transacao) { qtb_entrega.deletarBanco_Dados(); } } }
public static void ProcessarEntregaPedido(TList_EntregaPedido val, BancoDados.TObjetoBanco banco) { bool st_transacao = false; TCD_EntregaPedido qtb_entrega = new TCD_EntregaPedido(); try { if (banco == null) { st_transacao = qtb_entrega.CriarBanco_Dados(true); } else { qtb_entrega.Banco_Dados = banco; } val.ForEach(p => { if (p.St_recontar) { p.St_registro = "P"; //Conferencia processada Gravar(p, qtb_entrega.Banco_Dados); //Verificar se a quantidade contada e maior que a quantidade do pedido if (p.Qtd_pedido < p.Qtd_entregue) { //Buscar item do pedido CamadaDados.Faturamento.Pedido.TList_RegLanPedido_Item lItem = CamadaNegocio.Faturamento.Pedido.TCN_LanPedido_Item.Busca(string.Empty, string.Empty, p.Cd_produto, p.Nr_pedidostr, p.Id_pedidoitemstr, string.Empty, string.Empty, false, qtb_entrega.Banco_Dados); if (lItem.Count > 0) { lItem[0].Quantidade += p.Qtd_entregue - p.Qtd_pedido; lItem[0].Ds_observacaoitem += (lItem[0].Ds_observacaoitem.Trim() != string.Empty ? "\r\n" : string.Empty) + "Item incrementado quantidade em " + (p.Qtd_entregue - p.Qtd_pedido).ToString("N0", new System.Globalization.CultureInfo("en-US", true)) + " " + p.Sigla_unidade.Trim() + " devido diferença na conferência."; CamadaNegocio.Faturamento.Pedido.TCN_LanPedido_Item.GravaPedido_Item(lItem[0], qtb_entrega.Banco_Dados); } } } }); if (st_transacao) { qtb_entrega.Banco_Dados.Commit_Tran(); } } catch (Exception ex) { if (st_transacao) { qtb_entrega.Banco_Dados.RollBack_Tran(); } throw new Exception("Erro processar conferência: " + ex.Message.Trim()); } finally { if (st_transacao) { qtb_entrega.deletarBanco_Dados(); } } }