Boa tarde, é possível reimprimir apenas o Triplicado de um documento de venda através de extensibilidade? Ou seja o que eu precisava era de após gravação de um documento e impressão do original e duplicado, imprimir o triplicado usando outro mapa…
Boa tarde. Sim, é possível. Exemplo testado no Evolution 10.0020:
using Primavera.Extensibility.BusinessEntities.ExtensibilityService.EventArgs;
using Primavera.Extensibility.Sales.Editors;
public class UiEditorVendas : EditorVendas
{
private const string MapaTriplicado = "GCPVTR01"; // máx. 8 caracteres
private bool primeiraImpressao;
public override void AntesDeImprimir(ref bool Cancel, ExtensibilityEventArgs e)
{
base.AntesDeImprimir(ref Cancel, e);
// Só na 1.ª impressão do documento (reimpressões não imprimem o triplicado)
primeiraImpressao = DocumentoVenda != null && !DocumentoVenda.DocImpresso;
}
public override void DepoisDeImprimir(string Filial, string Tipo, string Serie, int NumDoc, ExtensibilityEventArgs e)
{
base.DepoisDeImprimir(Filial, Tipo, Serie, NumDoc, e);
if (!primeiraImpressao) return;
primeiraImpressao = false;
// 1 via com o mapa do triplicado
BSO.Vendas.Documentos.ImprimeDocumento(Tipo, Serie, NumDoc, Filial, 1, MapaTriplicado);
}
}
Notas:
Mapa: o ImprimeDocumento não deixa escolher a via inicial; com 1 via sai sempre "Original". Por isso o mapa do triplicado é uma cópia do mapa da série (por exemplo GCPVLS01) em que o campo da via, {@NumVia}, passa a {SeriesVendas.DescricaoVia03}.
Registo do mapa:
Nome com no máximo 8 caracteres.
Ficheiro em SG100\Mapas\EV\NOVOS\.
Registado em PRIEMPRE.Mapas com Apl=VND, Categoria=DocVenda e Custom=1. Sem registo dá "O Mapa 'X' não existe.".
Impressão no editor: o editor de vendas não imprime automaticamente ao gravar. Por isso usámos AntesDeImprimir/DepoisDeImprimir e não DepoisDeGravar.
Âmbito do teste: no editor testámos com Fatura Simplificada. Faturas (FA) e Faturas-Recibo (FR) não foram testadas no editor.