public void AtualizaPedidoItem(MPedido pedido, MPedidoItem item, int _pedidoOrigem, ref int posicaoTransacao)//muda o pedido original do item { Conexao.Iniciar(ref posicaoTransacao); var _item = Conexao.BancoDados.TB_COM_PEDIDO_ITEMs.FirstOrDefault(a => a.ID_PEDIDO == _pedidoOrigem && a.ID_ITEM == item.ID_ITEM); var novoItem = new MPedidoItem(); novoItem.ID_PRODUTO = _item.ID_PRODUTO ?? 0; novoItem.QUANTIDADE = _item.QT ?? 0m; novoItem.VL_UNITARIO = _item.VL_UNITARIO ?? 0m; novoItem.VL_ACRESCIMO = _item.VL_ACRESCIMO ?? 0m; novoItem.VL_DESCONTO = _item.VL_DESCONTO ?? 0m; novoItem.VL_SUBTOTAL = _item.VL_SUBTOTAL ?? 0m; novoItem.ST_ATIVO = _item.ST_ATIVO; novoItem.ST_IMPRESSO = _item.TB_GOU_PEDIDO_ITEM.ST_IMPRESSO; novoItem.OBS = _item.DS_OBSERVACAO; var _adicionais = Conexao.BancoDados.TB_GOU_PEDIDO_ITEM_ADICIONALs.Where(p => p.ID_ITEM == _item.ID_ITEM && p.ID_PEDIDO == _item.ID_PEDIDO && p.ID_EMPRESA == _item.ID_EMPRESA).ToList(); for (int i = 0; i < _adicionais.Count; i++) { var novoAdicionais = new MAdicionais(); novoAdicionais.ID_GRUPO = _adicionais[i].ID_GRUPO; novoAdicionais.ID_ITEMPEDIDO = _adicionais[i].ID_ITEM; novoAdicionais.ID_ADICIONAL = _adicionais[i].ID_ADICIONAL; novoItem.Adicionais.Add(novoAdicionais); } var _complementos = Conexao.BancoDados.TB_GOU_PEDIDO_ITEM_COMPLEMENTOs.Where(p => p.ID_ITEM == _item.ID_ITEM && p.ID_PEDIDO == _item.ID_PEDIDO && p.ID_EMPRESA == _item.ID_EMPRESA).ToList(); for (int i = 0; i < _complementos.Count; i++) { var novoComplementos = new MComplemento(); novoComplementos.ID_ITEMPEDIDO = _complementos[i].ID_ITEM; novoComplementos.ID_PRODUTO = _complementos[i].ID_PRODUTO; novoComplementos.QUANTIDADE = _complementos[i].QT ?? 0m; novoComplementos.VALOR = _complementos[i].VL ?? 0m; novoItem.COMPLEMENTOS.Add(novoComplementos); } new Comercial.QPedido().GravaPedidoItem(pedido, novoItem); GravaItemPedido(pedido, novoItem); var delItem = new MPedidoItem(); delItem.ID_ITEM = _item.ID_ITEM; delItem.ID_PEDIDO = _item.ID_PEDIDO; new Comercial.QPedido().DeletarItemParaTransferir(delItem, ref posicaoTransacao); Conexao.Finalizar(ref posicaoTransacao); }
private void GravaItemPedido(MPedido pedido, MPedidoItem Itens) { var existenteItem = Conexao.BancoDados.TB_GOU_PEDIDO_ITEMs.FirstOrDefault(a => a.ID_PEDIDO == pedido.ID_PEDIDO && a.ID_ITEM == Itens.ID_ITEM); if (existenteItem == null) { Itens.ID_ITEM = (Conexao.BancoDados.TB_GOU_PEDIDO_ITEMs.Any() ? Conexao.BancoDados.TB_GOU_PEDIDO_ITEMs.Max(a => a.ID_ITEM) : 0) + 1; var vItens = new TB_GOU_PEDIDO_ITEM(); vItens.ID_PEDIDO = pedido.ID_PEDIDO; vItens.ID_EMPRESA = pedido.ID_EMPRESA; vItens.ID_ITEM = Itens.ID_ITEM; vItens.DS_OBSERVACAO = Itens.OBS; vItens.ST_IMPRESSO = Itens.ST_IMPRESSO; Conexao.BancoDados.TB_GOU_PEDIDO_ITEMs.InsertOnSubmit(vItens); Conexao.Enviar(); } else { existenteItem.ID_EMPRESA = pedido.ID_EMPRESA; existenteItem.DS_OBSERVACAO = Itens.OBS; existenteItem.ST_IMPRESSO = Itens.ST_IMPRESSO; Conexao.Enviar(); } for (int y = 0; y < Itens.COMPLEMENTOS.Count; y++) { var existenteItemComplemento = Conexao.BancoDados.TB_GOU_PEDIDO_ITEM_COMPLEMENTOs.FirstOrDefault(a => a.ID_PEDIDO == pedido.ID_PEDIDO && a.ID_ITEM == Itens.ID_ITEM && a.ID_COMPLEMENTO == Itens.COMPLEMENTOS[y].ID_COMPLEMENTO); if (existenteItemComplemento == null) { Itens.COMPLEMENTOS[y].ID_COMPLEMENTO = (Conexao.BancoDados.TB_GOU_PEDIDO_ITEM_COMPLEMENTOs.Any() ? Conexao.BancoDados.TB_GOU_PEDIDO_ITEM_COMPLEMENTOs.Max(a => a.ID_COMPLEMENTO) : 0) + 1; var vComplementos = new TB_GOU_PEDIDO_ITEM_COMPLEMENTO(); vComplementos.ID_COMPLEMENTO = Itens.COMPLEMENTOS[y].ID_COMPLEMENTO; vComplementos.ID_EMPRESA = pedido.ID_EMPRESA; vComplementos.ID_PRODUTO = Itens.COMPLEMENTOS[y].ID_PRODUTO; vComplementos.ID_PEDIDO = pedido.ID_PEDIDO; vComplementos.ID_ITEM = Itens.ID_ITEM; vComplementos.QT = Itens.COMPLEMENTOS[y].QUANTIDADE; vComplementos.VL = Itens.COMPLEMENTOS[y].VALOR; Conexao.BancoDados.TB_GOU_PEDIDO_ITEM_COMPLEMENTOs.InsertOnSubmit(vComplementos); Conexao.Enviar(); } else { existenteItemComplemento.ID_EMPRESA = pedido.ID_EMPRESA; existenteItemComplemento.ID_PRODUTO = Itens.COMPLEMENTOS[y].ID_PRODUTO; existenteItemComplemento.QT = Itens.COMPLEMENTOS[y].QUANTIDADE; existenteItemComplemento.VL = Itens.COMPLEMENTOS[y].VALOR; Conexao.Enviar(); } } for (int y = 0; y < Itens.Adicionais.Count; y++) { var existenteItemAdicional = Conexao.BancoDados.TB_GOU_PEDIDO_ITEM_ADICIONALs.FirstOrDefault(a => a.ID_PEDIDO == pedido.ID_PEDIDO && a.ID_ITEM == Itens.ID_ITEM && a.ID_ADICIONAL == Itens.Adicionais[y].ID_ADICIONAL); if (existenteItemAdicional == null) { Itens.Adicionais[y].ID_ITEMADICIONAL = (Conexao.BancoDados.TB_GOU_PEDIDO_ITEM_ADICIONALs.Any() ? Conexao.BancoDados.TB_GOU_PEDIDO_ITEM_ADICIONALs.Max(a => a.ID_ITEM_ADICIONAL) : 0) + 1; var vAdicional = new TB_GOU_PEDIDO_ITEM_ADICIONAL(); vAdicional.ID_ITEM_ADICIONAL = Itens.Adicionais[y].ID_ITEMADICIONAL; vAdicional.ID_PEDIDO = pedido.ID_PEDIDO; vAdicional.ID_EMPRESA = pedido.ID_EMPRESA; vAdicional.ID_ITEM = Itens.ID_ITEM; vAdicional.ID_ADICIONAL = Itens.Adicionais[y].ID_ADICIONAL; vAdicional.ID_GRUPO = Itens.Adicionais[y].ID_GRUPO; Conexao.BancoDados.TB_GOU_PEDIDO_ITEM_ADICIONALs.InsertOnSubmit(vAdicional); Conexao.Enviar(); } else { existenteItemAdicional.ID_EMPRESA = pedido.ID_EMPRESA; existenteItemAdicional.ID_ADICIONAL = Itens.Adicionais[y].ID_ADICIONAL; existenteItemAdicional.ID_GRUPO = Itens.Adicionais[y].ID_GRUPO; Conexao.Enviar(); } } }