public override void AntesDeGravar(ref bool Cancel, ExtensibilityEventArgs e) { // base.AntesDeGravar(ref Cancel, e); obj_cabec_doc.Tipodoc = "FA"; obj_cabec_doc.Serie = "2019"; obj_cabec_doc.Moeda = "AKZ"; obj_cabec_doc.TipoEntidade = "C"; obj_cabec_doc.Entidade = "10124"; //BSO.Comercial.VENDAS.PreencheDadosRelacionados obj_cabec_doc; BSO.Vendas.Documentos.PreencheDadosRelacionados(obj_cabec_doc); VndBELinhaDocumentoVenda obj_lin_doc = new VndBELinhaDocumentoVenda(); obj_lin_doc.Artigo = "01.01.047"; obj_lin_doc.Descricao = "Descricao do Artigo"; obj_lin_doc.Quantidade = 2; obj_lin_doc.PrecUnit = 1000; obj_lin_doc.Unidade = "UN"; obj_lin_doc.CodIva = "0"; obj_lin_doc.TaxaIva = 0; obj_lin_doc.TipoLinha = "10"; obj_cabec_doc.Linhas.Insere(obj_lin_doc); // VndBELinhaDocumentoVenda obj_lin_doc = new VndBELinhaDocumentoVenda(); //BSO.Comercial.VENDAS.Actualiza obj BSO.Vendas.Documentos.Actualiza(obj_cabec_doc); }
/// <summary> /// Creates a new invoice. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void CmdReservar_Click(object sender, EventArgs e) { try { InvBE100.InvBELinhasReserva objReservas = new InvBE100.InvBELinhasReserva(); double dblQtdEncomenda = priGrelhaEncomendas.GetGRID_GetValorCelula(priGrelhaEncomendas.Grelha.ActiveRow, m_colQuantidade); double dblQtdReserva = 0; for (int i = 1; i <= priGrelhaDocs.Grelha.DataRowCnt; i++) { if (dblQtdReserva > dblQtdEncomenda) { break; } if (priGrelhaDocs.GetGRID_GetValorCelula(i, m_colSeleccionado) == 1) { InvBE100.InvBELinhaReserva objLinhaReserva = new InvBE100.InvBELinhaReserva(); objLinhaReserva.Artigo = priGrelhaEncomendas.GetGRID_GetValorCelula(priGrelhaEncomendas.Grelha.ActiveRow, m_colArtigo); objLinhaReserva.Armazem = priGrelhaDocs.GetGRID_GetValorCelula(i, m_colArmazem); objLinhaReserva.Localizacao = priGrelhaDocs.GetGRID_GetValorCelula(i, m_colLocalizacao); objLinhaReserva.Lote = priGrelhaDocs.GetGRID_GetValorCelula(i, m_colLote); objLinhaReserva.IdTipoOrigemDestino = PriEngine.Engine.Inventario.TiposOrigem.DaIDTipoOrigem(ConstantesPrimavera100.AbreviaturasApl.Vendas, ConstantesPrimavera100.Modulos.Vendas); //Indicamos a origem apenas se a reserva não é de stock disponível string strIdTipoOrigem = priGrelhaDocs.GetGRID_GetValorCelula(i, m_colIdTipoOrigem); if (!string.IsNullOrWhiteSpace(strIdTipoOrigem)) { objLinhaReserva.IdTipoOrigemOrigem = strIdTipoOrigem; objLinhaReserva.IdChaveOrigem = priGrelhaDocs.GetGRID_GetValorCelula(i, m_colIdLinha); objLinhaReserva.DescricaoOrigem = priGrelhaDocs.GetGRID_GetValorCelula(i, m_colDocumento); objLinhaReserva.EstadoOrigem = priGrelhaDocs.GetGRID_GetValorCelula(i, m_colEstado); objLinhaReserva.EstadoDestino = "PREV.RES"; } else { objLinhaReserva.EstadoOrigem = priGrelhaDocs.GetGRID_GetValorCelula(i, m_colEstado); objLinhaReserva.EstadoDestino = "RES"; } objLinhaReserva.DescricaoDestino = priGrelhaEncomendas.GetGRID_GetValorCelula(priGrelhaEncomendas.Grelha.ActiveRow, m_colDocumento); objLinhaReserva.IdChaveDestino = priGrelhaEncomendas.GetGRID_GetValorCelula(priGrelhaEncomendas.Grelha.ActiveRow, m_colIdLinha); objLinhaReserva.Quantidade = priGrelhaDocs.GetGRID_GetValorCelula(i, m_colQuantidadeDisponivel); dblQtdReserva += objLinhaReserva.Quantidade; if (dblQtdReserva > dblQtdEncomenda) { objLinhaReserva.Quantidade = priGrelhaDocs.GetGRID_GetValorCelula(i, m_colQuantidadeDisponivel) - (dblQtdReserva - dblQtdEncomenda); } objLinhaReserva.QuantidadePendente = objLinhaReserva.Quantidade; objLinhaReserva.ReservadoPor = InvBE100.InvBETipos.EnumReservadoPor.Destino; objReservas.Insere(objLinhaReserva); } } if (dblQtdReserva == 0) { MessageBox.Show("Não exitem reservas a efetuar."); return; } string strIdEncomenda = priGrelhaEncomendas.GetGRID_GetValorCelula(priGrelhaEncomendas.Grelha.ActiveRow, m_colIdDocumento); string strIdLinha = priGrelhaEncomendas.GetGRID_GetValorCelula(priGrelhaEncomendas.Grelha.ActiveRow, m_colIdLinha); VndBEDocumentoVenda objDoc = PriEngine.Engine.Vendas.Documentos.EditaID(strIdEncomenda); VndBELinhaDocumentoVenda objLinha = ((IEnumerable <VndBELinhaDocumentoVenda>)objDoc.Linhas).FirstOrDefault(x => x.IdLinha == strIdLinha); InvBE100.InvBEReserva objReserva = new InvBE100.InvBEReserva(); objReserva.Linhas = objReservas; objLinha.ReservaStock = objReserva; PriEngine.Engine.Vendas.Documentos.Actualiza(objDoc); MessageBox.Show("Reserva criada com sucesso"); } catch (Exception ex) { PriEngine.Platform.Dialogos.MostraErro("Erro ao executar a operação", StdPlatBS100.StdBSTipos.IconId.PRI_Exclama, ex.Message); } }