diff --git a/app/Mail/InvalidSerialMail.php b/app/Mail/InvalidSerialMail.php new file mode 100644 index 0000000..c6333d7 --- /dev/null +++ b/app/Mail/InvalidSerialMail.php @@ -0,0 +1,402 @@ +serial = $serial; +// $this->invoiceNumber = $invoiceNumber; +// $this->plantName = $plantName; +// $this->invoiceType = $invoiceType; +// } + +// /** +// * Get the message envelope. +// */ +// public function envelope(): Envelope +// { +// return new Envelope( +// subject: 'Invalid Serial Mail', +// ); +// } + +// /** +// * Get the message content definition. +// */ +// public function content(): Content +// { +// $greeting = "Dear Sir/Madam,

Please note that the scanned serial number format appears to be incorrect."; + +// return new Content( +// view: 'mail.invalid-serial', +// with: [ +// 'company' => "CRI Digital Manufacturing Solutions", +// 'greeting' => $greeting, +// 'wishes' => "Thanks & Regards,
CRI Digital Manufacturing Solutions" +// ], +// ); +// } + +// /** +// * Get the attachments for the message. +// * +// * @return array +// */ +// public function attachments(): array +// { +// return []; +// } +// } + +class InvalidSerialMail extends Mailable +{ + use Queueable, SerializesModels; + + public $serial; + public $invoiceNumber; + public $mplantName; + public $mInvoiceType; + public $mailType; // new + public $greeting; + public $subjectLine; + + public $itemCode; + + /** + * Create a new message instance. + */ + public function __construct($serial, $invoiceNumber, $mplantName, $mInvoiceType, $itemCode, $mailType = 'InvalidFormat') + { + $this->serial = $serial; + $this->invoiceNumber = $invoiceNumber; + $this->mplantName = $mplantName; + $this->mInvoiceType = $mInvoiceType; + $this->mailType = $mailType; + $this->itemCode = $itemCode; + } + + /** + * Get the message envelope. + */ + public function envelope(): Envelope + { + // dynamic subject based on mail type + switch ($this->mailType) { + case 'NotFound': + $this->subjectLine = "Serial Number Not Found ({$this->mplantName})"; + break; + case 'NotFoundInvoice': + $this->subjectLine = "Serial Number Not Found in Invoice ({$this->mplantName})"; + break; + case 'NotFoundItemS': + $this->subjectLine = "Item Code Not Found ({$this->mplantName})"; + break; + case 'NotValidPackage': + $this->subjectLine = "Not Valid Package ({$this->mplantName})"; + break; + case 'InvalidMaterialFormat': + $this->subjectLine = "Invalid Qr code format Found material ({$this->mplantName})"; + break; + case 'DuplicateMotorQR': + $this->subjectLine = "Duplicate Serial Number ({$this->mplantName})"; + break; + case 'NotMotorQR': + $this->subjectLine = "Item Code doesn't have Motor QR ({$this->mplantName})"; + break; + case 'CompletedSerialInvoice': + $this->subjectLine = "Completed Serial Invoice ({$this->mplantName})"; + break; + case 'NotPumpQR': + $this->subjectLine = "Item Code doesn't have Pump QR ({$this->mplantName})"; + break; + case 'DuplicatePumpQR': + $this->subjectLine = "Duplicate Serial Number ({$this->mplantName})"; + break; + case 'CSerialInvoice': + $this->subjectLine = "Completed Serial Invoice ({$this->mplantName})"; + break; + case 'MissingPanelBox': + $this->subjectLine = "Missing Panel Box ({$this->mplantName})"; + break; + case 'DuplicateCapacitorQR': + $this->subjectLine = "Duplicate Capacitor QR ({$this->mplantName})"; + break; + case 'UnknownPumpsetQR': + $this->subjectLine = "Unknown PumpSet QR ({$this->mplantName})"; + break; + case 'DuplicatePumpsetQR': + $this->subjectLine = "Duplicate PumpSet QR ({$this->mplantName})"; + break; + case 'ComSerInv': + $this->subjectLine = "Completed Serial Invoice ({$this->mplantName})"; + break; + case 'InvalidFormat': + default: + $this->subjectLine = "Invalid Serial Format Found ({$this->mplantName})"; + break; + } + + return new Envelope( + subject: $this->subjectLine, + ); + } + + /** + * Get the message content definition. + */ + public function content(): Content + { + // dynamic greeting/message body + switch ($this->mailType) { + case 'NotFound': + $this->greeting = " + Dear Sir/Madam,

+ The scanned Serial Number {$this->serial} was not found in the database + for the plant {$this->mplantName}.

+ Invoice Number: {$this->invoiceNumber}
+ Invoice Type: {$this->mInvoiceType}

+ Please verify the serial number. + "; + break; + case 'NotFoundInvoice': + $this->greeting = " + Dear Sir/Madam,

+ The scanned Serial Number '{$this->serial}' was not found in the Invoice Number '{$this->invoiceNumber}' + for the plant {$this->mplantName}.

+ Invoice Type: {$this->mInvoiceType}

+ Please verify the serial number. + "; + break; + case 'NotFoundItemS': + $this->greeting = " + Dear Sir/Madam,

+ Item Code '{$this->itemCode}' with Serial Number'{$this->serial}' not found in sticker master + for the plant {$this->mplantName}.

+ Invoice Number: {$this->invoiceNumber}

+ Invoice Type: {$this->mInvoiceType}

+ Please verify the Item Code. + "; + break; + case 'NotValidPackage': + $this->greeting = " + Dear Sir/Madam,

+ Scanned Item Code'{$this->itemCode}' doesn't have valid package type to proceed! + for the plant {$this->mplantName}.

+ Invoice Number: {$this->invoiceNumber}

+ Invoice Type: {$this->mInvoiceType}

+ Please verify the Item Code. + "; + break; + case 'InvalidMaterialFormat': + $this->greeting = " + Dear Sir/Madam,

+ Please note that the scanned serial number format appears to be incorrect.
+ Plant: {$this->mplantName}
+ Invoice Type: {$this->mInvoiceType}
+ Invoice Number: {$this->invoiceNumber}
+ Scanned QR Code: {$this->serial}
+ "; + break; + case 'DuplicateMotorQR': + $this->greeting = " + Dear Sir/Madam,

+ Scanned 'Motor' serial number {$this->serial} already completed the scanning process.
+ Plant: {$this->mplantName}
+ Invoice Type: {$this->mInvoiceType} + Invoice Number: {$this->invoiceNumber}
+ Scanned QR Code: {$this->serial}
+ "; + break; + case 'NotMotorQR': + $this->greeting = " + Dear Sir/Madam,

+ Scanned Item Code {$this->itemCode} doesn't have 'Motor' QR to proceed!
+ Plant: {$this->mplantName}
+ Invoice Type: {$this->mInvoiceType}
+ Invoice Number: {$this->invoiceNumber}
+ Scanned QR Code: {$this->serial}
+ "; + break; + case 'CompletedSerialInvoice': + $this->greeting = " + Dear Sir/Madam,

+ Serial invoice '{$this->invoiceNumber}' completed the scanning process.
+ Plant: {$this->mplantName}
+ Invoice Type: {$this->mInvoiceType}
+ Scanned QR Code: {$this->serial}
+ "; + break; + case 'NotPumpQR': + $this->greeting = " + Dear Sir/Madam,

+ Scanned Item Code '{$this->itemCode}' doesn't have 'Pump' QR to proceed!
+ Plant: {$this->mplantName}
+ Invoice Type: {$this->mInvoiceType}
+ Invoice Number: {$this->invoiceNumber}
+ Scanned QR Code: {$this->serial}
+ "; + break; + case 'DuplicatePumpQR': + $this->greeting = " + Dear Sir/Madam,

+ Scanned 'Pump' serial number already completed the scanning process.
+ Plant: {$this->mplantName}
+ Invoice Type: {$this->mInvoiceType}
+ Invoice Number: {$this->invoiceNumber}
+ Scanned QR Code: {$this->serial}
+ "; + break; + case 'CSerialInvoice': + $this->greeting = " + Dear Sir/Madam,

+ Serial invoice '{$this->invoiceNumber}' completed the scanning process.
+ Plant: {$this->mplantName}
+ Invoice Type: {$this->mInvoiceType}
+ Scanned QR Code: {$this->serial}
+ "; + break; + case 'MissingPanelBox': + $this->greeting = " + Dear Sir/Madam,

+ Scanned Item Code '{$this->itemCode}' doesn't have 'Panel Box Code' to proceed!
+ Plant: {$this->mplantName}
+ Invoice Type: {$this->mInvoiceType}
+ Invoice Number: {$this->invoiceNumber}
+ Scanned QR Code: {$this->serial}
+ "; + break; + case 'DuplicateCapacitorQR': + $this->greeting = " + Dear Sir/Madam,

+ Scanned 'Capacitor' serial number already completed the scanning process.
+ Plant: {$this->mplantName}
+ Invoice Type: {$this->mInvoiceType}
+ Invoice Number: {$this->invoiceNumber}
+ Scanned QR Code: {$this->serial}
+ "; + break; + case 'UnknownPumpsetQR': + $this->greeting = " + Dear Sir/Madam,

+ Scanned Item Code '{$this->itemCode}' doesn't have 'Pump Set' QR to proceed!
+ Plant: {$this->mplantName}
+ Invoice Type: {$this->mInvoiceType}
+ Invoice Number: {$this->invoiceNumber}
+ Scanned QR Code: {$this->serial}
+ "; + break; + case 'DuplicatePumpsetQR': + $this->greeting = " + Dear Sir/Madam,

+ Scanned 'Pump Set' serial number already completed the scanning process.
+ Plant: {$this->mplantName}
+ Invoice Type: {$this->mInvoiceType}
+ Invoice Number: {$this->invoiceNumber}
+ Scanned QR Code: {$this->serial}
+ "; + break; + case 'ComSerInv': + $this->greeting = " + Dear Sir/Madam,

+ Serial invoice '{$this->invoiceNumber}' completed the scanning process.
+ Plant: {$this->mplantName}
+ Invoice Type: {$this->mInvoiceType}
+ Invoice Number: {$this->invoiceNumber}
+ Scanned QR Code: {$this->serial}
+ "; + break; + case 'ItemNotFound': + $this->greeting = " + Dear Sir/Madam,

+ Item code '{$this->itemCode}' not found in database.
+ Plant: {$this->mplantName}
+ Invoice Type: {$this->mInvoiceType}
+ Invoice Number: {$this->invoiceNumber}
+ Scanned QR Code: {$this->serial}
+ "; + break; + case 'ItemNotFoundDB': + $this->greeting = " + Dear Sir/Madam,

+ Item code '{$this->itemCode}' not found in database for choosed plant.
+ Plant: {$this->mplantName}
+ Invoice Type: {$this->mInvoiceType}
+ Invoice Number: {$this->invoiceNumber}
+ Scanned QR Code: {$this->serial}
+ "; + break; + case 'ItemNotValidMaterialType': + $this->greeting = " + Dear Sir/Madam,

+ Item code '{$this->itemCode}' doesn't have a valid material type.
+ Plant: {$this->mplantName}
+ Invoice Type: {$this->mInvoiceType}
+ Invoice Number: {$this->invoiceNumber}
+ Scanned QR Code: {$this->serial}
+ "; + break; + case 'ItemNotInvoice': + $this->greeting = " + Dear Sir/Madam,

+ Item code '{$this->itemCode}' doesn't exist in invoice.
+ Plant: {$this->mplantName}
+ Invoice Type: {$this->mInvoiceType}
+ Invoice Number: {$this->invoiceNumber}
+ Scanned QR Code: {$this->serial}
+ "; + break; + case 'ItemNotInvoice': + $this->greeting = " + Dear Sir/Madam,

+ Item code '{$this->itemCode}' doesn't exist in invoice.
+ Plant: {$this->mplantName}
+ Invoice Type: {$this->mInvoiceType}
+ Invoice Number: {$this->invoiceNumber}
+ Scanned QR Code: {$this->serial}
+ "; + break; + case 'InvalidFormat': + default: + $this->greeting = " + Dear Sir/Madam,

+ Please note that the scanned serial number format appears to be incorrect.
+ Plant: {$this->mplantName}
+ Invoice Type: {$this->mInvoiceType} + Invoice Number: {$this->invoiceNumber}
+ Scanned QR Code: {$this->serial}
+ "; + break; + } + + return new Content( + view: 'mail.invalid-serial', + with: [ + 'company' => "CRI Digital Manufacturing Solutions", + 'greeting' => $this->greeting, + 'wishes' => "Thanks & Regards,
CRI Digital Manufacturing Solutions", + ], + ); + } +}