Professional Documents
Culture Documents
{
OBJECT-PROPERTIES
{
Date=22-08-17;
Time=11:15:09 AM;
Modified=Yes;
Version List=VW_1_3.2.5.0,WMS;
}
PROPERTIES
{
OnRun=VAR
FunctionNameL@1109400001 : Text[30];
BEGIN
UserSessionG.GetParamForFindings(FirstRecRefG,SecondRecRefG,FunctionNameL,ObjectTyp
eG);
CASE FunctionNameL OF
'ModifyFindings':
ModifyFindings();
'CopyFindings':
CopyFindings();
'DeleteFindings':
DeleteFindings();
'OpenFindings':
OpenFindings();
END;
END;
}
CODE
{
VAR
C_INC001@1109400004 : TextConst 'DEU=Der Garantieantrag %1 kann nicht
ge�ndert werden,\Status: %2;ENU=Warranty claim %1 cannot be
modified.;ESP=Reclamaci�n gt�a. %1 no puede ser modificada.;FRA=La r�clamation de
la garantie %1 ne peut pas �tre modifi�e;RUS=����� �������� �� �
�⨩���� ॡ������
%1.';
UserSessionG@1109400000 : Codeunit 5028665;
VWUserSessionG@1000000000 : Codeunit 5117700;
WarrentyProcessingG@1117700000 : Codeunit 5117727;
FirstRecRefG@1109420003 : RecordRef;
SecondRecRefG@1109420004 : RecordRef;
ObjectTypeG@1109420005 : Text[30];
C_INC002@1119418001 : TextConst 'ENU=Service Order %1 is already sent to
SAGA/2. Change of Make Code is not possible!;ESP=Orden Rep. %1 ya se envi� a
SAGA/2. �El cambio de C�d. Marca no es posible!;FRA=La commande de service %1 est
d�j� envoy�e � SAGA/2. Le changement de code de t�che n''est pas possible !;RUS=��
1 % ����� �� ࢨ 㦥 �� ������ SAGA/2. ��������� ���� ��� � ��������� !';
C_INC003@1119418002 : TextConst 'ENU=Line was already sent to SAGA/2. Change
of %1 or %2 is not allowed!;ESP=La l�nea fue enviada a SAGA/2. � El cambio de %1 o
%2 no est� permitido!;FRA=La ligne a d�j� �t� envoy�e � SAGA/2. Le changement de %1
ou %2 n''est pas autoris� !;RUS=���� 㦥 ��।��� � SAGA/2. ��������� %1 ��� %2
����������!';
C_INC004@1119418003 : TextConst 'ENU=Service Line is already sent to SAGA/2.
Deletion ist not allowed!;ESP=L�nea Servicio ya se envi� a SAGA/2. �Eliminaci�n no
pemitida!;FRA=La ligne de service est d�j� envoy�e � SAGA/2. La suppression n''est
pas permise !;RUS=���� 㦥 ��।��� � SAGA/2. �������� ����������!';
C_INC005@1119418000 : TextConst 'ENU=Alignment is only possible for Service
Orders!;ESP=Solo es posible la alineaci�n para las �rdenes de
reparaci�n!;FRA=L''alignement est possible uniquement pour les commandes de service
!;RUS=�뢥 � � ������� �쪮쪮쪮 ��� ��ࢨ��� �������!';
C_INC006@1109400001 : TextConst 'ENU=Close Status for Claim %1 could not be
set!';
PROCEDURE ModifyFindings@1109420006();
BEGIN
CASE SecondRecRefG.NUMBER OF
DATABASE :: "Service Header":
BEGIN
ServHdrModifyTrigger();
END;
DATABASE :: "Service Line":
BEGIN
ServiceLineModify();
END;
DATABASE :: "Service Job Line":
BEGIN
END;
DATABASE :: "Service Line Customer":
BEGIN
ServiceLineCustomerModify();
END;
DATABASE :: "Warranty Claim Header":
BEGIN
WtyClaimHdrModify();
END;
DATABASE :: "Warranty Claim Line":
BEGIN
END;
DATABASE :: "Warranty Submission Header":
BEGIN
END;
END;
END;
PROCEDURE DeleteFindings@1109420005();
BEGIN
CASE SecondRecRefG.NUMBER OF
DATABASE :: "Service Header":
BEGIN
// Start PA034550.I001230
CopyServHdrToArchServHdr();
// Stop PA034550.I001230
END;
DATABASE :: "Service Line":
BEGIN
DeleteSerLineFinding();
END;
DATABASE :: "Service Job Line":
BEGIN
DeleteServJobLineWtyFinding();
END;
DATABASE :: "Service Line Customer":
BEGIN
DeleteServLineCustWtyFinding(SecondRecRefG);
END;
DATABASE :: "Warranty Claim Header":
BEGIN
WtyClaimHdrDelTrigger();
END;
DATABASE :: "Warranty Claim Line":
BEGIN
WtyClaimLineDelTrigger();
END;
DATABASE :: "Warranty Submission Header":
BEGIN
WtySubmissionHdrDelTrigger();
END;
DATABASE :: "Archived Service Header":
BEGIN
DeleteArchServHdrWtyFinding();
END;
END;
END;
PROCEDURE CopyFindings@1109420003();
BEGIN
IF (FirstRecRefG.NUMBER = DATABASE::"Service Header") AND
(SecondRecRefG.NUMBER = DATABASE::"Archived Service Header")
THEN BEGIN
CopyServHdrToArchServHdr();
EXIT;
END;
PROCEDURE OpenFindings@1109420004();
VAR
ServiceHeaderL@1109420003 : Record 5025624;
ArchServHdrL@1109420006 : Record 5025636;
WtyClaimHeaderL@1109420001 : Record 5025790;
WtySubHeaderL@1109420002 : Record 5025798;
VWClaimHeaderL@1109420004 : Record 5117751;
BEGIN
CASE SecondRecRefG.NUMBER OF
DATABASE :: "Service Header":
BEGIN
SecondRecRefG.SETTABLE(ServiceHeaderL);
VWClaimHeaderL.RESET;
VWClaimHeaderL.SETRANGE("Document Type",VWClaimHeaderL."Document
Type"::Order);
VWClaimHeaderL.SETRANGE("Document No.",ServiceHeaderL."No.");
VWClaimHeaderL.FIND('-');
FORM.RUNMODAL(FORM::"VW Claim",VWClaimHeaderL);
END;
DATABASE :: "Archived Service Header":
BEGIN
SecondRecRefG.SETTABLE(ArchServHdrL);
VWClaimHeaderL.RESET;
VWClaimHeaderL.SETRANGE("Document Type",VWClaimHeaderL."Document
Type"::"Archived Order");
VWClaimHeaderL.SETRANGE("Document No.",ArchServHdrL."No.");
VWClaimHeaderL.FIND('-');
FORM.RUNMODAL(FORM::"VW Claim",VWClaimHeaderL);
END;
DATABASE :: "Warranty Claim Header":
BEGIN
SecondRecRefG.SETTABLE(WtyClaimHeaderL);
VWClaimHeaderL.RESET;
VWClaimHeaderL.SETRANGE("Document Type",VWClaimHeaderL."Document
Type"::"Warranty Claim");
VWClaimHeaderL.SETRANGE("Document No.",WtyClaimHeaderL."No.");
VWClaimHeaderL.FIND('-');
FORM.RUNMODAL(FORM::"VW Claim",VWClaimHeaderL);
END;
DATABASE :: "Warranty Submission Header":
BEGIN
SecondRecRefG.SETTABLE(WtySubHeaderL);
VWClaimHeaderL.RESET;
VWClaimHeaderL.SETRANGE("Document Type",VWClaimHeaderL."Document
Type"::"Submitted Claim");
VWClaimHeaderL.SETRANGE("Document No.",WtySubHeaderL."No.");
VWClaimHeaderL.FIND('-');
FORM.RUNMODAL(FORM::"VW Claim",VWClaimHeaderL);
END;
END;
END;
PROCEDURE ServHdrModifyTrigger@1109420002();
VAR
RecServHdrL@1109400001 : Record 5025624;
xRecServHdrL@1117700000 : Record 5025624;
VwMakeMappingL@1117900000 : Record 5117716;
VwWarrantyHdrL@1109420003 : Record 5117750;
BBOrderSubscriptL@1109400000 : Record 5117709;
BEGIN
FirstRecRefG.SETTABLE(xRecServHdrL);
SecondRecRefG.SETTABLE(RecServHdrL);
// Start PA035879
IF RecServHdrL."Document Type" = RecServHdrL."Document Type"::Order THEN
BBOrderSubscriptL.SetForProcess(RecServHdrL);
VWUserSessionG.SubscriptionDateTimeSet(CURRENTDATETIME);
// Stop PA035879
PROCEDURE ServiceLineModify@1109420001();
VAR
RecServLineL@1109400001 : Record 5025625;
xRecServLineL@1109420003 : Record 5025625;
VwClaimHdrL@1117900001 : Record 5117751;
VwClaimLineL@1117900000 : Record 5117752;
ServLineL@1117900003 : Record 5025625;
BBOrderItemSubscriptL@1109400000 : Record 5117708;
BEGIN
FirstRecRefG.SETTABLE(xRecServLineL);
SecondRecRefG.SETTABLE(RecServLineL);
// Start PA035879
IF RecServLineL."Document Type" = RecServLineL."Document Type"::Order THEN
BEGIN
IF CURRENTDATETIME - VWUserSessionG.SubscriptionDateTimeGet > 100 THEN
BBOrderItemSubscriptL.SetForProcess(RecServLineL);
END;
VWUserSessionG.SubscriptionDateTimeSet(CURRENTDATETIME);
// Stop PA035879
// Start PA029950
IF NOT RecServLineL.Blocked THEN
EXIT;
// Stop PA029950
VwClaimLineL.RESET;
VwClaimLineL.SETRANGE("Document Type",VwClaimLineL."Document Type"::Order);
VwClaimLineL.SETRANGE("Document No.",RecServLineL."Document No.");
VwClaimLineL.SETRANGE("Service Line No.",RecServLineL."Line No.");
IF VwClaimLineL.FIND('+') THEN BEGIN
VwClaimHdrL.GET(VwClaimLineL."Document Type",VwClaimLineL."Document
No.",VwClaimLineL."Claim No.");
IF VwClaimLineL."Claim No." = 0 THEN BEGIN
IF NOT VwClaimHdrL."Alignment Done" THEN
// Start PA031416
ERROR(C_INC003,RecServLineL.FIELDCAPTION(RecServLineL.Type),RecServLineL.FIELDCAPTI
ON(RecServLineL."No."));
// Stop PA031416
END ELSE
IF VwClaimHdrL.Status <> VwClaimHdrL.Status::Deleted THEN
// Start PA031416
ERROR(C_INC003,RecServLineL.FIELDCAPTION(RecServLineL.Type),RecServLineL.FIELDCAPTI
ON(RecServLineL."No."));
// Stop PA031416
END;
END;
PROCEDURE ServiceLineCustomerModify@1117900002();
VAR
RecServLineCustL@1109400001 : Record 5025639;
xRecServLineCustL@1109420003 : Record 5025639;
BEGIN
FirstRecRefG.SETTABLE(xRecServLineCustL);
SecondRecRefG.SETTABLE(RecServLineCustL);
END;
PROCEDURE DeleteSerLineFinding@30();
VAR
ServLineL@1109420004 : Record 5025625;
BBOrderItemSubscriptL@1109400000 : Record 5117708;
BEGIN
SecondRecRefG.SETTABLE(ServLineL);
CheckServLineDeletion(ServLineL);
// Start PA035879
IF ServLineL."Document Type" = ServLineL."Document Type"::Order THEN
BBOrderItemSubscriptL.SetForProcess(ServLineL);
// Stop PA035879
END;
PROCEDURE WtyClaimHdrDelTrigger@1109420007();
VAR
PresentWtyClaimHdrL@1109420005 : Record 5025790;
VwWarrantyHdrL@1109400002 : Record 5117750;
BEGIN
SecondRecRefG.SETTABLE(PresentWtyClaimHdrL);
VwWarrantyHdrL.RESET;
VwWarrantyHdrL.SETRANGE("Document Type",VwWarrantyHdrL."Document
Type"::"Warranty Claim");
VwWarrantyHdrL.SETRANGE("Document No.",PresentWtyClaimHdrL."No.");
IF VwWarrantyHdrL.FIND('-') THEN
VwWarrantyHdrL.DELETE(TRUE);
END;
PROCEDURE WtyClaimHdrModify@1109420008();
VAR
PresentWtyClaimHdrL@1109400001 : Record 5025790;
PreviousWtyClaimHdrL@1109420003 : Record 5025790;
BEGIN
FirstRecRefG.SETTABLE(PreviousWtyClaimHdrL);
SecondRecRefG.SETTABLE(PresentWtyClaimHdrL);
ERROR(C_INC001,PreviousWtyClaimHdrL."No.");
END;
PROCEDURE WtyClaimLineDelTrigger@1109420009();
VAR
PresentWtyClaimLineL@1109420003 : Record 5025791;
BEGIN
SecondRecRefG.SETTABLE(PresentWtyClaimLineL);
END;
PROCEDURE WtySubmissionHdrDelTrigger@1109420000();
VAR
PresentWtySubmHdrL@1117700000 : Record 5025798;
VwWarrantyHdrL@1109420005 : Record 5117750;
BEGIN
SecondRecRefG.SETTABLE(PresentWtySubmHdrL);
VwWarrantyHdrL.RESET;
VwWarrantyHdrL.SETRANGE("Document Type",VwWarrantyHdrL."Document
Type"::"Submitted Claim");
VwWarrantyHdrL.SETRANGE("Document No.",PresentWtySubmHdrL."No.");
IF VwWarrantyHdrL.FIND('-') THEN
VwWarrantyHdrL.DELETE(TRUE);
END;
PROCEDURE DeleteArchServHdrWtyFinding@1109420010();
VAR
PresentArchServHdrL@1109420005 : Record 5025636;
VwWarrantyHdrL@1109400002 : Record 5117750;
BEGIN
SecondRecRefG.SETTABLE(PresentArchServHdrL);
VwWarrantyHdrL.RESET;
VwWarrantyHdrL.SETRANGE("Document Type",VwWarrantyHdrL."Document
Type"::"Archived Order");
VwWarrantyHdrL.SETRANGE("Document No.",PresentArchServHdrL."No.");
IF VwWarrantyHdrL.FIND('-') THEN
VwWarrantyHdrL.DELETE(TRUE);
END;
PROCEDURE DeleteServJobLineWtyFinding@31();
VAR
ServJobLineL@1109420004 : Record 5025627;
ServLineL@1117700000 : Record 5025625;
BEGIN
SecondRecRefG.SETTABLE(ServJobLineL);
ServLineL.RESET;
ServLineL.SETRANGE("Document Type",ServJobLineL."Document Type");
ServLineL.SETRANGE("Document No.",ServJobLineL."Document No.");
ServLineL.SETRANGE("Service Job No.",ServJobLineL."Line No.");
IF ServLineL.FIND('-') THEN
REPEAT
CheckServLineDeletion(ServLineL);
UNTIL ServLineL.NEXT = 0;
END;
PROCEDURE DeleteServLineCustWtyFinding@6(PresentRecRefP@1109420004 :
RecordRef);
VAR
ServLineL@1109420001 : Record 5025625;
BEGIN
CASE SecondRecRefG.NUMBER OF
DATABASE::"Service Line":
BEGIN
PresentRecRefP.SETTABLE(ServLineL);
CheckServLineDeletion(ServLineL);
END;
END;
END;
PROCEDURE CopyServHdrToArchServHdr@1109420013();
VAR
OldServHdrL@1109420003 : Record 5025624;
ServLineL@1117700012 : Record 5025625;
WarrantyClaimHdrL@1117700006 : Record 5025790;
WarrantyClaimLineL@1117900000 : Record 5025791;
VwWarrantyHdrL@1109420005 : Record 5117750;
VwWarrantyHdrL1@1117700001 : Record 5117750;
VwClaimHdrL@1109420004 : Record 5117751;
VwClaimHdrL1@1117700002 : Record 5117751;
VwClaimHdrLT@1117700005 : TEMPORARY Record 5117751;
VwClaimLineL@1117700000 : Record 5117752;
VwClaimLineL1@1117700003 : Record 5117752;
BBOrderSubscriptL@1109400000 : Record 5117709;
WarrantyNoL@1117700014 : Code[20];
LineNoL@1117700013 : Integer;
BEGIN
// @ Function to copy Warranty Findings from Service Order to Archive Service
Order
FirstRecRefG.SETTABLE(OldServHdrL);
// Start PA035879
IF OldServHdrL."Document Type" = OldServHdrL."Document Type"::Order THEN
BEGIN
BBOrderSubscriptL.ServiceHeaderDelete(OldServHdrL);
END;
// Stop PA035879
IF VwWarrantyHdrL.GET(VwWarrantyHdrL."Document Type"::"Archived
Order",OldServHdrL."No.") THEN
VwWarrantyHdrL.DELETE(TRUE);
IF NOT VwWarrantyHdrL.GET(VwWarrantyHdrL."Document
Type"::Order,OldServHdrL."No.") THEN
EXIT;
VwClaimLineL.RESET;
VwClaimLineL.SETRANGE("Document Type",VwClaimLineL."Document Type"::Order);
VwClaimLineL.SETRANGE("Document No.",OldServHdrL."No.");
VwClaimLineL.SETRANGE("Claim No.",0);
IF VwClaimLineL.FIND('-') THEN
REPEAT
IF ServLineL.GET(OldServHdrL."Document
Type",OldServHdrL."No.",VwClaimLineL."Service Line No.") THEN BEGIN
ServLineL.Blocked := FALSE;
ServLineL.MODIFY;
END;
UNTIL VwClaimLineL.NEXT = 0;
VwWarrantyHdrL1 := VwWarrantyHdrL;
VwWarrantyHdrL1."Document Type" := VwWarrantyHdrL1."Document Type"::"Archived
Order";
VwWarrantyHdrL1.INSERT;
VwClaimHdrL.RESET;
VwClaimHdrL.SETRANGE("Document Type",VwWarrantyHdrL."Document Type");
VwClaimHdrL.SETRANGE("Document No.",VwWarrantyHdrL."Document No.");
IF VwClaimHdrL.FIND('-') THEN
REPEAT
IF (VwClaimHdrL.Status = VwClaimHdrL.Status::New) AND (VwClaimHdrL."Claim
No." > 0) THEN BEGIN
VwClaimHdrLT := VwClaimHdrL;
VwClaimHdrLT.INSERT;
END;
VwClaimHdrL1 := VwClaimHdrL;
VwClaimHdrL1."Document Type" := VwWarrantyHdrL1."Document Type";
VwClaimHdrL1.INSERT;
VwClaimLineL.RESET;
VwClaimLineL.SETRANGE("Document Type",VwClaimHdrL."Document Type");
VwClaimLineL.SETRANGE("Document No.",VwClaimHdrL."Document No.");
VwClaimLineL.SETRANGE("Claim No.",VwClaimHdrL."Claim No.");
IF VwClaimLineL.FIND('-') THEN
REPEAT
VwClaimLineL1 := VwClaimLineL;
VwClaimLineL1."Document Type" := VwClaimHdrL1."Document Type";
// Start PA041002
VwClaimLineL1.INSERT(TRUE);
// Stop PA041002
UNTIL VwClaimLineL.NEXT = 0;
UNTIL VwClaimHdrL.NEXT = 0;
// Create Warranty Claim and Copy Finding from Service Order to Warranty
Claim
IF VwClaimHdrLT.FIND('-') THEN BEGIN
WarrantyNoL := CreateWarrantyClaim(OldServHdrL, VwWarrantyHdrL);
WarrantyClaimHdrL.GET(OldServHdrL."Make Code",WarrantyNoL);
REPEAT
VwClaimHdrL1 := VwClaimHdrLT;
VwClaimHdrL1."Document Type" := VwClaimHdrL1."Document Type"::"Warranty
Claim";
VwClaimHdrL1."Document No." := WarrantyNoL;
VwClaimHdrL1.INSERT;
VwClaimLineL.RESET;
VwClaimLineL.SETRANGE("Document Type",VwClaimLineL."Document
Type"::"Archived Order");
VwClaimLineL.SETRANGE("Document No.",VwClaimHdrLT."Document No.");
VwClaimLineL.SETRANGE("Claim No.",VwClaimHdrLT."Claim No.");
// Start PA032130
// Start PA032130
IF VwClaimLineL.FIND('-') THEN
REPEAT
ServLineL.GET(ServLineL."Document Type"::Order,
WarrantyClaimHdrL."Service Order No.", VwClaimLineL."Service Line
No.");
AddWarrantyLine(ServLineL, WarrantyClaimHdrL, VwClaimLineL, LineNoL);
VwClaimLineL1 := VwClaimLineL;
VwClaimLineL1."Document Type" := VwWarrantyHdrL1."Document Type";
VwClaimLineL1."Document No." := VwWarrantyHdrL1."Document No.";
// Start PA041002
VwClaimLineL1.INSERT(TRUE);
// Stop PA041002
UNTIL VwClaimLineL.NEXT = 0;
UNTIL VwClaimHdrLT.NEXT = 0;
WarrantyClaimHdrL.Status := WarrantyClaimHdrL.Status::Prepared;
WarrantyClaimHdrL.MODIFY;
WarrantyClaimLineL.RESET;
WarrantyClaimLineL.SETRANGE("Make Code",WarrantyClaimHdrL."Make Code");
WarrantyClaimLineL.SETRANGE("Warranty No.",WarrantyClaimHdrL."No.");
IF WarrantyClaimLineL.FIND('-') THEN
WarrantyClaimLineL.MODIFYALL(Status,WarrantyClaimHdrL.Status);
VwWarrantyHdrL.DELETE(TRUE);
SetClaimStatusClosed(WarrantyNoL);
END ELSE
VwWarrantyHdrL.DELETE(TRUE);
END;
PROCEDURE CopyArchServHdrToServHdr@1117900004();
VAR
ArchServHdrL@1109420003 : Record 5025636;
VwWarrantyHdrL@1109420005 : Record 5117750;
BEGIN
FirstRecRefG.SETTABLE(ArchServHdrL);
IF VwWarrantyHdrL.GET(VwWarrantyHdrL."Document Type"::"Archived
Order",ArchServHdrL."No.") THEN
VwWarrantyHdrL.DELETE(TRUE);
END;
PROCEDURE CopyWtyClaimToWtySubHdr@1100409076();
BEGIN
END;
// Start PA029950
IF NOT ServLineP.Blocked THEN
EXIT;
// Stop PA029950
VwClaimLineL.RESET;
VwClaimLineL.SETRANGE("Document Type",VwClaimLineL."Document Type"::Order);
VwClaimLineL.SETRANGE("Document No.",ServLineP."Document No.");
VwClaimLineL.SETRANGE("Service Line No.",ServLineP."Line No.");
IF VwClaimLineL.FIND('+') THEN BEGIN
VwClaimHdrL.GET(VwClaimLineL."Document Type",VwClaimLineL."Document
No.",VwClaimLineL."Claim No.");
IF VwClaimLineL."Claim No." = 0 THEN BEGIN
IF NOT VwClaimHdrL."Alignment Done" THEN
// Start PA031416
ERROR(C_INC004);
// Stop PA031416
END
ELSE
IF VwClaimHdrL.Status <> VwClaimHdrL.Status::Deleted THEN
// Start PA031416
ERROR(C_INC004);
// Stop PA031416
END;
END;
MakeL.GET(ServiceHdrP."Make Code");
CLEAR(WarrantyClaimHdrL);
WarrantyClaimHdrL."Make Code" := ServiceHdrP."Make Code";
WarrantyClaimHdrL."Created on" := TODAY;
WarrantyClaimHdrL."Created by" := USERID;
WarrantyClaimHdrL.INSERT(TRUE);
// Form Invoice
SalesInvoiceHdrL.SETCURRENTKEY("Service Order No.");
SalesInvoiceHdrL.SETRANGE("Service Order No.",ServiceHdrP."No.");
SalesInvoiceHdrL.SETRANGE("Bill-to Customer No.",WarrantyClaimHdrL."Bill-to
Customer No.");
IF SalesInvoiceHdrL.FIND('+') THEN BEGIN
WarrantyClaimHdrL."Document Date" := SalesInvoiceHdrL."Document Date";
WarrantyClaimHdrL."Document No." := SalesInvoiceHdrL."No.";
END;
// VW WarrantyClaim
WarrantyClaimHdrL."Confirmed Date" := VwWarrantyHdrP."Send Date";
WarrantyClaimHdrL."Confirmed User ID" := VwWarrantyHdrP."Send By";
WarrantyClaimHdrL."Dealer No." :=
VwDealerMappingL.GetDealer(WarrantyClaimHdrL."Location Code");
// From Vehicle
IF VehicleL.GET(WarrantyClaimHdrL.VIN) THEN
WarrantyClaimHdrL."Own Sale" := VehicleL."Own Sale";
WarrantyClaimHdrL.MODIFY;
CreateWarrantyJob(WarrantyClaimHdrL);
CreateWarrantyPackage(WarrantyClaimHdrL);
WarrantyNoR := WarrantyClaimHdrL."No.";
END;
WarrantyClaimLineL.INIT;
WarrantyClaimLineL."Make Code" := WarrantyClaimHdrP."Make Code";
WarrantyClaimLineL."Warranty No." := WarrantyClaimHdrP."No.";
WarrantyClaimLineL."Line No." := LineNoP;
LineNoP += 10000;
// Start PA031177
FoundL := FALSE;
SalesInvHdrL.RESET();
SalesInvHdrL.SETCURRENTKEY("Service Order No.");
SalesInvHdrL.SETRANGE("Service Order No.",ServiceLineP."Document No.");
SalesInvHdrL.SETRANGE("Bill-to Customer No.",WarrantyClaimHdrP."Bill-to
Customer No.");
IF SalesInvHdrL.FIND('-') THEN
REPEAT
SalesInvLineL.RESET;
SalesInvLineL.SETCURRENTKEY("Service Order No.","Service Order Line
No.");
SalesInvLineL.SETRANGE("Service Order No.",ServiceLineP."Document No.");
SalesInvLineL.SETRANGE("Service Order Line No.",ServiceLineP."Line No.");
SalesInvLineL.SETRANGE("Document No.",SalesInvHdrL."No.");
IF SalesInvLineL.FIND('+') THEN BEGIN
WarrantyClaimLineL."Serv. Invoice Line No." := SalesInvLineL."Line
No.";
WarrManagementUnitL.WarrLineSalesInvLine2(WarrantyClaimLineL,
SalesInvLineL);
FoundL := TRUE;
END;
UNTIL (SalesInvHdrL.NEXT = 0) OR FoundL;
// Stop PA031177
ServLineCustL.GET(ServiceLineP."Document Type",ServiceLineP."Document
No.",ServiceLineP."Line No.",
WarrantyClaimHdrP."Bill-to Customer No.");
WarrantyClaimLineL."Manufacturer Portion %" := ServLineCustL."Portion %";
// Start PA030402
IF NOT WarrantyClaimLineL.INSERT(TRUE) THEN
WarrantyClaimLineL.MODIFY(TRUE);
// Stop PA030402
VwClaimHdrL.RESET;
VwClaimHdrL.SETRANGE("Document Type",VwClaimHdrL."Document Type"::"Warranty
Claim");
VwClaimHdrL.SETRANGE("Document No.",WarrantyNoP);
VwClaimHdrL.SETRANGE(Status,VwClaimHdrL.Status::New);
IF VwClaimHdrL.FIND('-') THEN
REPEAT
// Start PA033323
// Start PA034550.I001230
COMMIT;
IF NOT CODEUNIT.RUN(CODEUNIT::"VW BB Send ClaimStatus
Closed",VwClaimHdrL) THEN BEGIN
MESSAGE(C_INC006,VwClaimHdrL."Claim No.");
// Stop PA034550.I001230
END;
// Stop PA033323
UNTIL VwClaimHdrL.NEXT = 0;
END;
SubmWarrantyHdrL.RESET;
SubmWarrantyHdrL.SETCURRENTKEY("Claim No.","Make Code");
SubmWarrantyHdrL.SETRANGE("Claim No.",VwWarrantyHdrP."Document No.");
SubmWarrantyHdrL.SETRANGE("Make Code",VwWarrantyHdrP."Make Code");
IF NOT SubmWarrantyHdrL.FIND('-') THEN BEGIN
WarrantyHdrL.GET(VwWarrantyHdrP."Make Code",VwWarrantyHdrP."Document No.");
CODEUNIT.RUN(CODEUNIT::"VW Submit Warranty",WarrantyHdrL);
WarrantyHdrL.Status := WarrantyHdrL.Status::"Submitted/Transf. to Cockpit";
WarrantyHdrL.MODIFY;
SubmWarrantyHdrL.GET(WarrantyHdrL."Make Code",WarrantyHdrL."Submission
No.");
VwWarrantyHdrL := VwWarrantyHdrP;
VwWarrantyHdrL."Document Type" := VwWarrantyHdrL."Document
Type"::"Submitted Claim";
VwWarrantyHdrL."Document No." := SubmWarrantyHdrL."No.";
VwWarrantyHdrL.INSERT;
END ELSE
VwWarrantyHdrL.GET(VwWarrantyHdrL."Document Type"::"Submitted
Claim",SubmWarrantyHdrL."No.");
// Copy Findings
VwClaimHdrL := VwClaimHdrP;
VwClaimHdrL."Document Type" := VwWarrantyHdrL."Document Type";
VwClaimHdrL."Document No." := VwWarrantyHdrL."Document No.";
VwClaimHdrL.INSERT;
VwClaimLineL.RESET;
VwClaimLineL.SETRANGE("Document Type",VwClaimHdrP."Document Type");
VwClaimLineL.SETRANGE("Document No.",VwClaimHdrP."Document No.");
VwClaimLineL.SETRANGE("Claim No.",VwClaimHdrP."Claim No.");
IF VwClaimLineL.FIND('-') THEN
REPEAT
VwClaimLineL1 := VwClaimLineL;
VwClaimLineL1."Document Type" := VwClaimHdrL."Document Type";
VwClaimLineL1."Document No." := VwClaimHdrL."Document No.";
// Start PA041002
VwClaimLineL1.INSERT(TRUE);
// Stop PA041002
UNTIL VwClaimLineL.NEXT = 0;
END;
VwClaimHdrL.GET(VwClaimLineP."Document Type",VwClaimLineP."Document
No.",VwClaimLineP."Claim No.");
VwClaimHdrL.TESTFIELD("Claim Type");
ServiceHeaderL.GET(ServiceHeaderL."Document
Type"::Order,VwClaimLineP."Document No.");
MakeL.GET(ServiceHeaderL."Make Code");
IF MakeL."Factory Warranty Customer" <> ServiceHeaderL."Bill-to Customer No."
THEN
BillCustomerL := ServiceHeaderL."Bill-to Customer No."
ELSE
BillCustomerL := ServiceHeaderL."Sell-to Customer No.";
// Start PA029950
IF (VwClaimLineP."Service Line No." <> 0) AND
(NOT ServiceLineL.GET(ServiceLineL."Document
Type"::Order,VwClaimLineP."Document No.",VwClaimLineP."Service Line No."))
THEN BEGIN
// Stop PA029950
ServiceLineL.RESET;
ServiceLineL.SETRANGE("Document Type", ServiceHeaderL."Document Type");
ServiceLineL.SETRANGE("Document No.", ServiceHeaderL."No.");
IF ServiceLineL.FIND('+') THEN
ServiceLineL."Line No." += 10000
ELSE
ServiceLineL."Line No." := 10000;
// Start PA029950
IF VwClaimLineP."Service Line No." <> 0 THEN
ServiceLineL."Line No." := VwClaimLineP."Service Line No.";
// Stop PA029950
ServiceLineL.INIT;
ServiceLineL."Document Type" := ServiceHeaderL."Document Type";
ServiceLineL.VALIDATE("Document No.", ServiceHeaderL."No.");
// Start PA032393
ServiceLineL.Type := VwClaimLineP."Line Type";
ServiceLineL.INSERT(TRUE);
// Stop PA032393
ServiceLineL."Make Code" := ServiceHeaderL."Make Code";
ServiceLineL."Data Make Code" := ServiceHeaderL."Make Code";
ServiceLineL."Find No." := FALSE;
ServiceLineL.VALIDATE("No.", VwClaimLineP."No.");
ServiceLineL.VALIDATE(Quantity, VwClaimLineP.Quantity);
ServiceLineL.VALIDATE("Bill-to Customer No.");
ServiceLineL."Package No." := VwClaimLineP."Package No.";
ServiceLineL."Package Version No." := VwClaimLineP."Package Version No.";
ServiceLineL."Find No." := TRUE;
END;
// Start PA029950
ServiceLineL.Blocked := TRUE;
// Stop PA029950
ServiceLineL.MODIFY;
VwClaimLineL.RESET;
VwClaimLineL.SETRANGE("Document Type",VwClaimLineP."Document Type");
VwClaimLineL.SETRANGE("Document No.",VwClaimLineP."Document No.");
VwClaimLineL.SETRANGE("Claim No.",0);
VwClaimLineL.SETRANGE("Service Line No.",VwClaimLineP."Service Line No.");
IF NOT VwClaimLineL.FIND('-') THEN BEGIN
VwClaimLineL.RESET;
VwClaimLineL.SETRANGE("Document Type",VwClaimHdrL."Document Type");
VwClaimLineL.SETRANGE("Document No.",VwClaimHdrL."Document No.");
VwClaimLineL.SETRANGE("Claim No.",0);
VwClaimLineL.FIND('+');
VwClaimLineL.INIT;
VwWarrantyHdrP.TESTFIELD("Document Type",VwWarrantyHdrP."Document
Type"::Order);
VwWarrantyHdrP.CALCFIELDS("Alignment Done");
IF NOT VwWarrantyHdrP."Alignment Done" THEN
EXIT;
// Start PA029950
VwWarrantyHdrP.CALCFIELDS("Received Claims");
IF VwWarrantyHdrP."Expected Claims" <> VwWarrantyHdrP."Received Claims" THEN
EXIT;
// Stop PA029950
VwClaimHdrL.GET(VwWarrantyHdrP."Document Type",VwWarrantyHdrP."Document
No.",0);
VwClaimHdrL.CALCFIELDS("Alignment Done");
IF VwClaimHdrL."Alignment Done" THEN
EXIT;
ServiceHdrL.GET(ServiceHdrL."Document Type"::Order,VwWarrantyHdrP."Document
No.");
MakeL.GET(ServiceHdrL."Make Code");
MakeL.TESTFIELD("Factory Warranty Customer");
IF MakeL."Factory Warranty Customer" <> ServiceHdrL."Bill-to Customer No."
THEN
BillCustomerL := ServiceHdrL."Bill-to Customer No."
ELSE
BillCustomerL := ServiceHdrL."Sell-to Customer No.";
VwClaimLineL.RESET;
VwClaimLineL.SETRANGE("Document Type",VwClaimHdrL."Document Type");
VwClaimLineL.SETRANGE("Document No.",VwClaimHdrL."Document No.");
VwClaimLineL.SETRANGE("Claim No.",VwClaimHdrL."Claim No.");
VwClaimLineL.SETRANGE("Alignment Done",FALSE);
IF VwClaimLineL.FIND('-') THEN
REPEAT
ServiceLineL.GET(ServiceLineL."Document
Type"::Order,VwClaimLineL."Document No.",VwClaimLineL."Service Line No.");
ServiceLineL.VALIDATE("Bill-to Customer No.",BillCustomerL);
ServiceLineL."Fair Deal" := FALSE;
// Start PA029950
ServiceLineL.Blocked := FALSE;
// Stop PA029950
ServiceLineL.MODIFY;
UNTIL VwClaimLineL.NEXT = 0;
// Start PA041002
VwClaimLineL.MODIFYALL("Alignment Done",TRUE, TRUE);
// Stop PA041002
VwClaimLineL.RESET;
VwClaimLineL.SETRANGE("Document Type",VwClaimLineL."Document Type"::Order);
VwClaimLineL.SETRANGE("Document No.",VwClaimHdrL."Document No.");
VwClaimLineL.SETRANGE("Claim No.",0);
ServiceLineL.RESET;
ServiceLineL.SETRANGE("Document Type",ServiceHdrL."Document Type");
ServiceLineL.SETRANGE("Document No.",ServiceHdrL."No.");
ServiceLineL.SETRANGE(Type,ServiceLineL.Type::Item,ServiceLineL.Type::"Ext.
Service");
IF ServiceLineL.FIND('-') THEN
REPEAT
VwClaimLineL.SETRANGE("Service Line No.",ServiceLineL."Line No.");
IF NOT VwClaimLineL.FIND('-') THEN BEGIN
IF ServiceLineL."Fair Deal" OR (ServiceLineL."Bill-to Customer No." =
MakeL."Factory Warranty Customer") THEN BEGIN
IF ServiceLineL."Fair Deal" THEN
ServiceLineL.VALIDATE("Fair Deal",FALSE);
IF ServiceLineL."Bill-to Customer No." = MakeL."Factory Warranty
Customer" THEN
ServiceLineL.VALIDATE("Bill-to Customer No.",BillCustomerL);
ServiceLineL.MODIFY;
END;
END;
UNTIL ServiceLineL.NEXT = 0;
END;
CompanyInfoL.GET;
IntCustomerNoR := CompanyInfoL."Internal Customer";
IF LocationP <> '' THEN BEGIN
IF LocationL.GET(LocationP) THEN
IF LocationL."Internal Customer" <> '' THEN
IntCustomerNoR := LocationL."Internal Customer";
END;
END;
ServJobLineL.RESET;
ServJobLineL.SETRANGE("Document Type", ServJobLineL."Document Type"::Order);
ServJobLineL.SETRANGE("Document No.", WarrantyHdrP."Service Order No.");
IF ServJobLineL.FIND('-') THEN
REPEAT
ServJobLineL1.INIT;
ServJobLineL1 := ServJobLineL;
ServJobLineL1."Document Type" := ServJobLineL1."Document Type"::Warranty;
ServJobLineL1."Document No." := WarrantyHdrP."No.";
ServJobLineL1.INSERT;
UNTIL ServJobLineL.NEXT = 0
END;
ServPkgLineL.RESET;
ServPkgLineL.SETRANGE("Document Type",ServPkgLineL."Document Type"::Order);
ServPkgLineL.SETRANGE("Document No.", WarrantyHdrP."Service Order No.");
IF ServPkgLineL.FIND('-') THEN
REPEAT
ServPkgLineL1.INIT;
ServPkgLineL1 := ServPkgLineL;
ServPkgLineL1."Document Type" := ServPkgLineL."Document Type"::Warranty;
ServPkgLineL1."Document No." := WarrantyHdrP."No.";
ServPkgLineL1.INSERT;
UNTIL ServPkgLineL.NEXT = 0
END;
BEGIN
{
// @ VW Make specific Warranty Finding Codeunit, setup in Service - Setup -
VW - Make Setup - Warranty
// @ Area VW, SAGA2
+----------------------------------------------+
| Copyright (c) incadea |
+----------------------------------------------+
PA-Number Date
------------------------------------------------
PA029950 04.03.08 New
PA029950 04.03.08 Several Bugfixes
PA030402 08.09.08 Bugfix for Function AddWarrantyLine
PA031146 15.05.09 Additional code in trigger "AlignServiceLine" in order
to re-calculate
the Charging Price.
PA031177 04.06.09 Bugfix in function AddWarrantyLine to find the correct
Posted Sales Invoice Line in case of multiple Invoices
posted for a Service Order.
PA031416 16.10.09 Line discount will be considered in service invoice
after the "Service Order Alignment" is done if the received
price and the original price is different.
- The "Calculation Rounding Precision" field is used
from "General Ledger Setup" table instead of hard coded
value .01 in function AlignServiceLine().
- Local Text Constants from functions
ServHdrModifyTrigger(), ServiceLineModify(), CheckServLineDeletion(),
AlignServiceLine() are moved to Global Text Constants.
PA031932 01.06.10 Function AlignServiceLine changed that no obsolete
Service Line Customer records are created
PA032130 18.08.10 GM Function AddWarrantyLine changed that Lines are not
overwritten any more
PA032393 26.01.11 GM Function AlignServiceLine changed that the Unit Price
is filled correctly
PA033323 18.06.12 DT Call of SetClaimStatus with Commit-Parameter to avoid
deadlock-situation
PA033324 31.07.12 SM Import of FRA, RUS and ESP translations.
PA034054 13.02.13 TS VW IML - incaDoc Tags.
PA034550 09.07.13 SM I001230: Added correct calling of the codeunit "VW BB
Send ClaimStatus Closed".
PA037397 30.01.15 Code has been added in function "AlignServiceLine".
PA035879 23.06.13 SM Calling of functions for VW BB Subscription.
PA041002 07.12.16 SW Added code for Trigerring WMS
}
END.
}
}