Normal
0
false
false
false
EN-US
X-NONE
X-NONE
MicrosoftInternetExplorer4
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-qformat:yes;
mso-style-parent:"";
mso-padding-alt:0in 5.4pt 0in 5.4pt;
mso-para-margin:0in;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:"Times New Roman";
mso-fareast-theme-font:minor-fareast;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;}
Microsoft
Dynamics NAV Document Approval SystemOBJECT Table 464 Approval Templates
{
OBJECT-PROPERTIES
{
Date=02/13/07;
Time=12:00:00 PM;
Version List=NAVW15.00;
}
PROPERTIES
{
OnInsert=BEGIN
TestValidation;
END;
OnDelete=BEGIN
AdditionalApprovers.SETRANGE("Approval Code","Approval
Code");
AdditionalApprovers.SETRANGE("Approval Type","Approval
Type");
AdditionalApprovers.SETRANGE("Document Type","Document
Type");
AdditionalApprovers.SETRANGE("Limit Type","Limit
Type");
AdditionalApprovers.DELETEALL;
END;
OnRename=BEGIN
TestValidation;
RenameAddApprovers(Rec,xRec);
END;
CaptionML=[ENU=Approval Templates;
ESM=Plantillas aprobación;
FRC=Modèles d'approbation;
ENC=Approval Templates];
}
FIELDS
{
{ 1
; ;Table ID ;Integer ;CaptionML=[ENU=Table ID;
ESM=Id. tabla;
FRC=Code table;
ENC=Table ID];
Editable=No }
{ 2
; ;Approval Code ;Code20 ;TableRelation="Approval
Code".Code;
OnValidate=BEGIN
TESTFIELD(Enabled,FALSE);
ApprCode.GET("Approval Code");
ApprCode.TESTFIELD("Linked To Table No.");
"Table
ID" := ApprCode."Linked To Table No.";
END;
CaptionML=[ENU=Approval Code;
ESM=Código
aprobación;
FRC=Code d'approbation;
ENC=Approval Code] }
{ 3
; ;Approval Type ;Option ;OnValidate=BEGIN
TESTFIELD(Enabled,FALSE);
END;
CaptionML=[ENU=Approval Type;
ESM=Tipo aprobación;
FRC=Type d'approbation;
ENC=Approval Type];
OptionCaptionML=[ENU=" ,Sales Pers./Purchaser,Approver";
ESM=" ,Vendedor/Comprador,Aprobador";
FRC="
,Vendeur/Acheteur,Approbateur";
ENC=" ,Sales Pers./Purchaser,Approver"];
OptionString=[ ,Sales Pers./Purchaser,Approver] }
{ 4
; ;Document Type ;Option ;OnValidate=BEGIN
TESTFIELD(Enabled,FALSE);
END;
CaptionML=[ENU=Document Type;
ESM=Tipo documento;
FRC=Type de document;
ENC=Document Type];
OptionCaptionML=[ENU=Quote,Order,Invoice,Credit Memo,Blanket
Order,Return Order,None;
ESM=Cotización,Pedido,Factura,Nota
crédito,Pedido abierto,Devolución,Ninguno;
FRC=Devis,Commande,Facture,Note de crédit,Commande
permanente,Retour,Aucun;
ENC=Quote,Order,Invoice,Credit Memo,Blanket Order,Return Order,None];
OptionString=Quote,Order,Invoice,Credit Memo,Blanket Order,Return
Order,None }
{ 5
; ;Limit Type ;Option ;OnValidate=BEGIN
TESTFIELD(Enabled,FALSE);
END;
CaptionML=[ENU=Limit
Type;
ESM=Tipo límite;
FRC=Type de limite;
ENC=Limit Type];
OptionCaptionML=[ENU=Approval Limits,Credit Limits,Request Limits,No
Limits;
ESM=Límites aprobación,Límites crédito,Límites solicitud,Sin límites;
FRC=Limites d'approbation,Limites de crédit,Limites de demande,Aucune
limite;
ENC=Approval
Limits,Credit Limits,Request Limits,No Limits];
OptionString=Approval Limits,Credit Limits,Request Limits,No Limits }
{ 6
; ;Additional
Approvers;Boolean ;FieldClass=FlowField;
CalcFormula=Exist("Additional Approvers" WHERE (Approval
Code=FIELD(Approval Code),
Approval Type=FIELD(Approval Type),
Document Type=FIELD(Document Type),
Limit Type=FIELD(Limit
Type)));
CaptionML=[ENU=Additional Approvers;
ESM=Aprobadores adicionales;
FRC=Autres approbateurs;
ENC=Additional Approvers];
Editable=No }
{ 7
; ;Enabled ;Boolean ;OnValidate=VAR
Salesheader@1000 : Record 36;
PurchaseHeader@1001 : Record 38;
ApprovalEntry@1002 :
Record 454;
TempApprovalTemplate@1003 : Record 464;
BEGIN
IF (Enabled = FALSE)
AND (xRec.Enabled = TRUE) THEN BEGIN
TempApprovalTemplate.SETRANGE("Approval Code","Approval
Code");
TempApprovalTemplate.SETRANGE("Document
Type","Document Type");
IF NOT TempApprovalTemplate.FINDFIRST THEN BEGIN
CASE "Table
ID" OF
DATABASE::"Sales Header":
BEGIN
Salesheader.SETCURRENTKEY("Document
Type",Status);
Salesheader.SETRANGE("Document Type","Document
Type");
Salesheader.SETRANGE(Status,Salesheader.Status::"Pending
Approval");
IF Salesheader.FINDFIRST THEN BEGIN
IF
CONFIRM(Text006) THEN BEGIN
ApprovalEntry.SETRANGE("Table ID",DATABASE::"Sales
Header");
ApprovalEntry.SETRANGE("Document
Type",Rec."Document Type");
ApprovalEntry.SETFILTER(
Status,'Sales
Order|SO-0000000012|requires your
approval.',ApprovalEntry.Status::Created,ApprovalEntry.Status::Open,ApprovalEntry.Status::Approved);
IF ApprovalEntry.FINDFIRST THEN
ApprovalEntry.MODIFYALL(Status,ApprovalEntry.Status::Canceled);
END;
Salesheader.MODIFYALL(Status,Salesheader.Status::Open);
END;
END;
DATABASE::"Purchase Header":
BEGIN
PurchaseHeader.SETCURRENTKEY("Document Type",Status);
PurchaseHeader.SETRANGE("Document Type",Rec."Document
Type");
PurchaseHeader.SETRANGE(Status,PurchaseHeader.Status::"Pending
Approval");
IF PurchaseHeader.FINDFIRST THEN BEGIN
IF
CONFIRM(Text006) THEN BEGIN
ApprovalEntry.SETRANGE("Table ID",DATABASE::"Purchase
Header");
ApprovalEntry.SETRANGE("Document
Type",Rec."Document Type");
ApprovalEntry.SETFILTER(
Status,'Sales Order|SO-0000000012|requires your
approval.',ApprovalEntry.Status::Created,ApprovalEntry.Status::Open,ApprovalEntry.Status::Approved);
IF ApprovalEntry.FINDFIRST THEN
ApprovalEntry.MODIFYALL(Status,ApprovalEntry.Status::Canceled);
END;
PurchaseHeader.MODIFYALL(Status,Salesheader.Status::Open);
END;
END;
END;
END;
END;
IF "Approval
Type" = "Approval Type"::" " THEN BEGIN
CALCFIELDS("Additional Approvers");
IF NOT "Additional Approvers" AND Enabled THEN
ERROR(STRSUBSTNO(Text005,FIELDCAPTION("Approval Type")));
END;
IF
("Approval Type" <> "Approval Type"::" ")
AND ("Limit Type" = "Limit Type"::"Credit
Limits") THEN BEGIN
CALCFIELDS("Additional Approvers");
IF
NOT "Additional Approvers" AND Enabled THEN
ERROR(STRSUBSTNO(Text007,FIELDCAPTION("Approval
Type"),FORMAT("Approval Type"),
FIELDCAPTION("Limit Type")));
END;
END;
CaptionML=[ENU=Enabled;
ESM=Activado;
FRC=Activé;
ENC=Enabled] }
}
KEYS
{
{
;Approval Code,Approval Type,Document Type,Limit Type;
Clustered=Yes }
{
;Table ID,Approval Type,Enabled
}
{
;Approval Code,Approval Type,Enabled
}
{
;Enabled
}
{
;Limit Type,Document Type,Approval Type,Enabled }
{
;Table ID,Document Type,Enabled
}
}
CODE
{
VAR
ApprCode@1000 : Record 453;
AdditionalApprovers@1001 : Record 465;
Text001@1002 : TextConst 'ENU=Sales Order
is not a valid limit type for table SO-0000000012.;ESM=Sales Order no es un
tipo límite válido para la tabla SO-0000000012.;FRC=Sales Order n''est pas un
type de limite valide pour la table SO-0000000012.;ENC=Sales Order is not a
valid limit type for table SO-0000000012.';
Text002@1003 : TextConst 'ENU=Sales Order
is only valid for table SO-0000000012.;ESM=Sales Order sólo es válido para la
tabla SO-0000000012.;FRC=Sales Order n''est valide que pour la table
SO-0000000012.;ENC=Sales Order is only valid for table SO-0000000012.';
Text004@1005 : TextConst 'ENU=Sales Order
is only valid when document type is Quote and Table ID is
SO-0000000012.;ESM=Sales Order sólo es válido cuando tipo documento es
Cotización y el Id. tabla es SO-0000000012.;FRC=Sales Order n''est valide que
si le type de document est Devis et le code de table est
SO-0000000012.;ENC=Sales Order is only valid when document type is Quote and
Table ID is SO-0000000012.';
Text005@1006 : TextConst 'ENU=Additional
Approvers must be inserted if Sales Order is blank.;ESM=Se deben insertar
aprobadores adicionales si Sales Order está vacío.;FRC=On doit insérer
d''autres approbateurs si Sales Order est vide.;ENC=Additional Approvers must
be inserted if Sales Order is blank.';
Text006@1007 : TextConst 'ENU="Do
you want to cancel all outstanding approvals? ";ESM="¿Desea cancelar
todas las aprobaciones pendientes? ";FRC="Souhaitez-vous annuler
toutes les approbations en suspens? ";ENC="Do you want to cancel all
outstanding approvals? "';
Text007@1008 : TextConst 'ENU=Additional
Approvers must be inserted if Sales Order is SO-0000000012 and requires your
approval. is Credit Limit.;ESM=Se deben insertar aprobadores adicionales si
Sales Order es SO-0000000012 y requires your approval. es Límite
crédito.;FRC=On doit insérer d''autres approbateurs si Sales Order est
SO-0000000012 et si requires your approval. est Limite de
crédit.;ENC=Additional Approvers must be inserted if Sales Order is
SO-0000000012 and requires your approval. is Credit Limit.';
PROCEDURE TestValidation@1();
VAR
AppSetup@1000 : Record 452;
BEGIN
AppSetup.GET;
IF ("Table ID" =
DATABASE::"Purchase Header") AND
("Limit Type" = "Limit
Type"::"Credit Limits") THEN
ERROR(STRSUBSTNO(Text001,FORMAT("Limit
Type"),DATABASE::"Purchase Header"));
IF ("Table ID" <>
DATABASE::"Purchase Header") AND
("Limit Type" = "Limit
Type"::"Request Limits") THEN
ERROR(STRSUBSTNO(Text002,FORMAT("Limit
Type"),DATABASE::"Purchase Header"))
ELSE BEGIN
IF ("Table ID" =
DATABASE::"Purchase Header") AND
("Limit Type" =
"Limit Type"::"Request Limits") AND
("Document Type" <>
"Document Type"::Quote) THEN
ERROR(STRSUBSTNO(Text004,FORMAT("Limit Type"),"Table
ID"));
END;
END;
PROCEDURE
RenameAddApprovers@2(Template@1000 : Record 464;xTemplate@1001 : Record 464);
VAR
AddApprovers@1002 : Record 465;
RenamedAddApprovers@1003 : Record 465;
BEGIN
AddApprovers.SETRANGE("Approval
Code",xTemplate."Approval Code");
AddApprovers.SETRANGE("Approval
Type",xTemplate."Approval Type");
AddApprovers.SETRANGE("Document
Type",xTemplate."Document Type");
AddApprovers.SETRANGE("Limit
Type",xTemplate."Limit Type");
IF AddApprovers.FIND('-') THEN BEGIN
REPEAT
RenamedAddApprovers := AddApprovers;
RenamedAddApprovers."Approval
Code" := Template."Approval Code";
RenamedAddApprovers."Approval
Type" := Template."Approval Type";
RenamedAddApprovers."Document
Type" := Template."Document Type";
RenamedAddApprovers."Limit
Type" := Template."Limit Type";
AddApprovers.DELETE;
RenamedAddApprovers.INSERT;
UNTIL AddApprovers.NEXT = 0;
END;
END;
BEGIN
END.
}
}