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);
        }
예제 #2
0
        /// <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);
            }
        }