mirror of
				https://github.com/crater-invoice/crater.git
				synced 2025-10-31 05:31:10 -04:00 
			
		
		
		
	Refactor Invoice and Payment templates
This commit is contained in:
		| @ -5,6 +5,7 @@ | ||||
|     <title>Invoice</title> | ||||
|     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> | ||||
|     <style type="text/css"> | ||||
|         /* -- Base -- */ | ||||
|         body { | ||||
|             font-family: "DejaVu Sans"; | ||||
|         } | ||||
| @ -12,25 +13,22 @@ | ||||
|         html { | ||||
|             margin: 0px; | ||||
|             padding: 0px; | ||||
|             margin-top: 50px; | ||||
|         } | ||||
|  | ||||
|         table { | ||||
|             border-collapse: collapse; | ||||
|         } | ||||
|  | ||||
|         .header-left { | ||||
|             padding-top: 45px; | ||||
|             padding-bottom: 45px; | ||||
|             padding-left: 30px; | ||||
|             display: inline-block; | ||||
|             width: 30%; | ||||
|         hr { | ||||
|             margin: 0 30px 0 30px; | ||||
|             color: rgba(0, 0, 0, 0.2); | ||||
|             border: 0.5px solid #EAF1FB; | ||||
|         } | ||||
|  | ||||
|         @page { | ||||
|             margin-top: 60px !important; | ||||
|         } | ||||
|         /* -- Header -- */ | ||||
|  | ||||
|         .header-table { | ||||
|         .header-container { | ||||
|             background: #817AE3; | ||||
|             position: absolute; | ||||
|             width: 100%; | ||||
| @ -39,6 +37,14 @@ | ||||
|             top: -60px; | ||||
|         } | ||||
|  | ||||
|         .header-section-left { | ||||
|             padding-top: 45px; | ||||
|             padding-bottom: 45px; | ||||
|             padding-left: 30px; | ||||
|             display: inline-block; | ||||
|             width: 30%; | ||||
|         } | ||||
|  | ||||
|         .header-logo { | ||||
|             position: absolute; | ||||
|             height: 50px; | ||||
| @ -46,14 +52,13 @@ | ||||
|             color: #fff; | ||||
|         } | ||||
|  | ||||
|         .header-right { | ||||
|         .header-section-right { | ||||
|             display: inline-block; | ||||
|             width: 35%; | ||||
|             float: right; | ||||
|             padding: 20px 30px 20px 0px; | ||||
|             text-align: right; | ||||
|             color: white; | ||||
|  | ||||
|         } | ||||
|  | ||||
|         .header { | ||||
| @ -61,26 +66,56 @@ | ||||
|             color: rgba(0, 0, 0, 0.7); | ||||
|         } | ||||
|  | ||||
|         .wrapper { | ||||
|         /*  -- Estimate Details -- */ | ||||
|  | ||||
|         .invoice-details-container { | ||||
|             text-align: center; | ||||
|             width: 40%; | ||||
|         } | ||||
|  | ||||
|         .invoice-details-container h1 { | ||||
|             margin: 0; | ||||
|             font-weight: 500; | ||||
|             font-size: 24px; | ||||
|             line-height: 36px; | ||||
|             text-align: right; | ||||
|         } | ||||
|  | ||||
|         .invoice-details-container h4 { | ||||
|             margin: 0; | ||||
|             font-size: 10px; | ||||
|             line-height: 15px; | ||||
|             text-align: right; | ||||
|         } | ||||
|  | ||||
|         .invoice-details-container h3 { | ||||
|             margin-bottom: 1px; | ||||
|             margin-top: 0; | ||||
|         } | ||||
|  | ||||
|         /* -- Content Wrapper -- */ | ||||
|  | ||||
|         .content-wrapper { | ||||
|             display: block; | ||||
|             margin-top: 60px; | ||||
|             padding-bottom: 20px; | ||||
|         } | ||||
|  | ||||
|         .address { | ||||
|         .address-container { | ||||
|             display: block; | ||||
|             padding-top: 20px; | ||||
|         } | ||||
|  | ||||
|         .company { | ||||
|         /* -- Company -- */ | ||||
|  | ||||
|         .company-address-container { | ||||
|             padding: 0 0 0 30px; | ||||
|             display: inline; | ||||
|             float: left; | ||||
|             width: 30%; | ||||
|         } | ||||
|  | ||||
|         .company h1 { | ||||
|             font-style: normal; | ||||
|         .company-address-container h1 { | ||||
|             font-weight: bold; | ||||
|             font-size: 15px; | ||||
|             line-height: 22px; | ||||
| @ -89,35 +124,30 @@ | ||||
|         } | ||||
|  | ||||
|         .company-address{ | ||||
|             font-style: normal; | ||||
|             font-weight: normal; | ||||
|             font-size: 10px; | ||||
|             line-height: 15px; | ||||
|             color: #595959; | ||||
|             margin-top: 0px; | ||||
|         } | ||||
|  | ||||
|         /* -------------------------- */ | ||||
|         /* billing style */ | ||||
|         .bill-address-container { | ||||
|         /* -- Billing -- */ | ||||
|  | ||||
|         .billing-address-container { | ||||
|             display: block; | ||||
|             /* position: absolute; */ | ||||
|             float: right; | ||||
|             padding: 0 40px 0 0; | ||||
|         } | ||||
|  | ||||
|         .bill-to { | ||||
|             font-style: normal; | ||||
|             font-weight: normal; | ||||
|         .billing-address-label { | ||||
|             font-size: 12px; | ||||
|             line-height: 18px; | ||||
|             padding: 0px; | ||||
|             margin-bottom: 0px; | ||||
|         } | ||||
|  | ||||
|         .bill-user-name { | ||||
|             max-width: 250px font-style: normal; | ||||
|             font-weight: normal; | ||||
|         .billing-address-name { | ||||
|             max-width: 250px; | ||||
|             font-size: 15px; | ||||
|             line-height: 22px; | ||||
|             padding: 0px; | ||||
| @ -125,9 +155,7 @@ | ||||
|             margin-bottom: 0px; | ||||
|         } | ||||
|  | ||||
|         .bill-user-address { | ||||
|             font-style: normal; | ||||
|             font-weight: normal; | ||||
|         .billing-address{ | ||||
|             font-size: 10px; | ||||
|             line-height: 15px; | ||||
|             color: #595959; | ||||
| @ -136,36 +164,23 @@ | ||||
|             width: 170px; | ||||
|         } | ||||
|  | ||||
|         .bill-user-phone { | ||||
|             font-style: normal; | ||||
|             font-weight: normal; | ||||
|             font-size: 10px; | ||||
|             line-height: 15px; | ||||
|             color: #595959; | ||||
|             padding: 0px; | ||||
|             margin: 0px; | ||||
|         } | ||||
|         /* -- Shipping -- */ | ||||
|  | ||||
|         /* -------------------------- */ | ||||
|         /* shipping style */ | ||||
|         .ship-address-container { | ||||
|         .shipping-address-container { | ||||
|             display: block; | ||||
|             float: right; | ||||
|             padding: 0 30px 0 0; | ||||
|         } | ||||
|  | ||||
|         .ship-to { | ||||
|             font-style: normal; | ||||
|             font-weight: normal; | ||||
|         .shipping-address-label { | ||||
|             font-size: 12px; | ||||
|             line-height: 18px; | ||||
|             padding: 0px; | ||||
|             margin-bottom: 0px; | ||||
|         } | ||||
|  | ||||
|         .ship-user-name { | ||||
|             max-width: 250px font-style: normal; | ||||
|             font-weight: normal; | ||||
|         .shipping-address-name { | ||||
|             max-width: 250px; | ||||
|             font-size: 15px; | ||||
|             line-height: 22px; | ||||
|             padding: 0px; | ||||
| @ -173,9 +188,7 @@ | ||||
|             margin-bottom: 0px; | ||||
|         } | ||||
|  | ||||
|         .ship-user-address { | ||||
|             font-style: normal; | ||||
|             font-weight: normal; | ||||
|         .shipping-address { | ||||
|             font-size: 10px; | ||||
|             line-height: 15px; | ||||
|             color: #595959; | ||||
| @ -184,37 +197,17 @@ | ||||
|             width: 170px; | ||||
|         } | ||||
|  | ||||
|         .ship-user-phone { | ||||
|             font-style: normal; | ||||
|             font-weight: normal; | ||||
|             font-size: 10px; | ||||
|             line-height: 15px; | ||||
|             color: #595959; | ||||
|             padding: 0px; | ||||
|             margin: 0px; | ||||
|         /* -- Items Table -- */ | ||||
|  | ||||
|         .items-table { | ||||
|             margin-top: 30px; | ||||
|             padding: 0px 30px 10px 30px; | ||||
|             page-break-before: avoid; | ||||
|             page-break-after: auto; | ||||
|         } | ||||
|  | ||||
|         .job-add { | ||||
|             display: inline; | ||||
|             float: right; | ||||
|             width: 40%; | ||||
|         } | ||||
|  | ||||
|         .amount-due { | ||||
|             background-color: #f2f2f2; | ||||
|         } | ||||
|  | ||||
|         .attribute-label { | ||||
|             font-size: 12; | ||||
|             font-weight: bold; | ||||
|             line-height: 22px; | ||||
|             color: rgba(0, 0, 0, 0.8); | ||||
|         } | ||||
|  | ||||
|         .attribute-value { | ||||
|             font-size: 12; | ||||
|             line-height: 22px; | ||||
|             color: rgba(0, 0, 0, 0.7); | ||||
|         .items-table hr { | ||||
|             height: 0.1px; | ||||
|         } | ||||
|  | ||||
|         .item-table-heading-row td { | ||||
| @ -226,23 +219,6 @@ | ||||
|             border-bottom: 1px solid red; | ||||
|         } | ||||
|  | ||||
|         .table2 { | ||||
|             margin-top: 30px; | ||||
|             padding: 0px 30px 10px 30px; | ||||
|             page-break-before: avoid; | ||||
|             page-break-after: auto; | ||||
|         } | ||||
|  | ||||
|         hr { | ||||
|             margin: 0 30px 0 30px; | ||||
|             color: rgba(0, 0, 0, 0.2); | ||||
|             border: 0.5px solid #EAF1FB; | ||||
|         } | ||||
|  | ||||
|         .table2 hr { | ||||
|             height: 0.1px; | ||||
|         } | ||||
|  | ||||
|         .item-table-heading { | ||||
|             font-size: 13.5; | ||||
|             text-align: center; | ||||
| @ -252,48 +228,26 @@ | ||||
|  | ||||
|         tr.item-table-heading-row th { | ||||
|             border-bottom: 0.620315px solid #E8E8E8; | ||||
|             font-style: normal; | ||||
|             font-weight: normal; | ||||
|             font-size: 12px; | ||||
|             line-height: 18px; | ||||
|         } | ||||
|  | ||||
|         tr.item-row td { | ||||
|             font-style: normal; | ||||
|             font-weight: normal; | ||||
|             font-size: 12px; | ||||
|             line-height: 18px; | ||||
|         } | ||||
|  | ||||
|         .item-cell { | ||||
|             font-size: 13; | ||||
|             color: rgba(0, 0, 0, 0.6); | ||||
|             color: #040405; | ||||
|             text-align: center; | ||||
|             padding: 5px; | ||||
|             padding-top: 10px; | ||||
|         } | ||||
|  | ||||
|         .note-header { | ||||
|             font-size: 13; | ||||
|             color: rgba(0, 0, 0, 0.6); | ||||
|         } | ||||
|         /* -- Total Display Table -- */ | ||||
|  | ||||
|         .note-text { | ||||
|             font-size: 10; | ||||
|             color: rgba(0, 0, 0, 0.6); | ||||
|         } | ||||
|  | ||||
|         .padd8 { | ||||
|             padding-top: 8px; | ||||
|             padding-bottom: 8px; | ||||
|         } | ||||
|  | ||||
|         .padd2 { | ||||
|             padding-top: 2px; | ||||
|             padding-bottom: 2px; | ||||
|         } | ||||
|  | ||||
|         .table3 { | ||||
|         .total-display-table { | ||||
|             border: 1px solid #EAF1FB; | ||||
|             border-top: none; | ||||
|             box-sizing: border-box; | ||||
| @ -301,58 +255,44 @@ | ||||
|             page-break-inside: avoid; | ||||
|             page-break-before: auto; | ||||
|             page-break-after: auto; | ||||
|             margin-left:420px; | ||||
|             margin-top: 10px | ||||
|         } | ||||
|  | ||||
|         .text-per-item-table3 { | ||||
|             border: 1px solid #EAF1FB; | ||||
|             border-top: none; | ||||
|             padding-right: 30px; | ||||
|             box-sizing: border-box; | ||||
|             width: 260px; | ||||
|             /* height: 100px; */ | ||||
|             position: absolute; | ||||
|             right: -25; | ||||
|         .total-table-attribute-label { | ||||
|             font-size: 12px; | ||||
|             color: #55547A; | ||||
|             text-align: left; | ||||
|             padding-left: 10px; | ||||
|         } | ||||
|  | ||||
|         .inv-item { | ||||
|             border-color: #d9d9d9; | ||||
|         } | ||||
|  | ||||
|         .no-border { | ||||
|             border: none; | ||||
|         } | ||||
|  | ||||
|         .company-details { | ||||
|             text-align: center; | ||||
|             width: 40%; | ||||
|         } | ||||
|  | ||||
|         .company-details h1 { | ||||
|             margin: 0; | ||||
|             font-style: normal; | ||||
|         .total-table-attribute-value { | ||||
|             font-weight: 500; | ||||
|             font-size: 24px; | ||||
|             line-height: 36px; | ||||
|             text-align: right; | ||||
|             font-size: 12px; | ||||
|             color: #040405; | ||||
|             padding-right: 10px; | ||||
|             padding-top: 2px; | ||||
|             padding-bottom: 2px; | ||||
|         } | ||||
|  | ||||
|         .company-details h4 { | ||||
|             margin: 0; | ||||
|             font-style: normal; | ||||
|             font-weight: normal; | ||||
|             font-size: 10px; | ||||
|             line-height: 15px; | ||||
|             text-align: right; | ||||
|         .total-border-left { | ||||
|             border: 1px solid #E8E8E8 !important; | ||||
|             border-right: 0px !important; | ||||
|             padding-top: 0px; | ||||
|             padding: 8px !important; | ||||
|         } | ||||
|  | ||||
|         .company-details h3 { | ||||
|             margin-bottom: 1px; | ||||
|             margin-top: 0; | ||||
|         .total-border-right { | ||||
|             border: 1px solid #E8E8E8 !important; | ||||
|             border-left: 0px !important; | ||||
|             padding-top: 0px; | ||||
|             padding: 8px !important; | ||||
|         } | ||||
|  | ||||
|         /* -- Notes -- */ | ||||
|  | ||||
|         .notes { | ||||
|             font-style: normal; | ||||
|             font-weight: 300; | ||||
|             font-size: 12px; | ||||
|             color: #595959; | ||||
|             margin-top: 15px; | ||||
| @ -363,8 +303,6 @@ | ||||
|         } | ||||
|  | ||||
|         .notes-label { | ||||
|             font-style: normal; | ||||
|             font-weight: normal; | ||||
|             font-size: 15px; | ||||
|             line-height: 22px; | ||||
|             letter-spacing: 0.05em; | ||||
| @ -373,24 +311,80 @@ | ||||
|             height: 19.87px; | ||||
|             padding-bottom: 10px; | ||||
|         } | ||||
|  | ||||
|         /* -- Helpers -- */ | ||||
|  | ||||
|         .text-primary { | ||||
|             color: #5851DB; | ||||
|         } | ||||
|  | ||||
|         .text-center { | ||||
|             text-align: center | ||||
|         } | ||||
|  | ||||
|         table .text-left { | ||||
|             text-align: left; | ||||
|         } | ||||
|  | ||||
|         table .text-right { | ||||
|             text-align: right; | ||||
|         } | ||||
|  | ||||
|         .border-0 { | ||||
|             border: none; | ||||
|         } | ||||
|  | ||||
|         .py-2 { | ||||
|             padding-top: 2px; | ||||
|             padding-bottom: 2px; | ||||
|         } | ||||
|  | ||||
|         .py-8 { | ||||
|             padding-top: 8px; | ||||
|             padding-bottom: 8px; | ||||
|         } | ||||
|  | ||||
|         .py-3 { | ||||
|             padding: 3px 0; | ||||
|         } | ||||
|  | ||||
|         .pr-20 { | ||||
|             padding-right: 20px; | ||||
|         } | ||||
|  | ||||
|         .pr-10 { | ||||
|             padding-right: 10px; | ||||
|         } | ||||
|  | ||||
|         .pl-20 { | ||||
|             padding-left: 20px; | ||||
|         } | ||||
|  | ||||
|         .pl-10 { | ||||
|             padding-left: 10px; | ||||
|         } | ||||
|  | ||||
|         .pl-0 { | ||||
|             padding-left: 0; | ||||
|         } | ||||
|     </style> | ||||
| </head> | ||||
|  | ||||
| <body> | ||||
|     <div class="header-table"> | ||||
|     <div class="header-container"> | ||||
|         <table width="100%"> | ||||
|             <tr> | ||||
|                 @if($logo) | ||||
|                 <td width="60%" class="header-left"> | ||||
|                 <td width="60%" class="header-section-left"> | ||||
|                     <img class="header-logo" src="{{ $logo }}" alt="Company Logo"> | ||||
|                     @else | ||||
|                 <td width="60%" class="header-left" style="padding-top: 0px;"> | ||||
|                 <td width="60%" class="header-section-left" style="padding-top: 0px;"> | ||||
|                     @if($invoice->user->company) | ||||
|                     <h1 class="header-logo"> {{$invoice->user->company->name}} </h1> | ||||
|                     @endif | ||||
|                     @endif | ||||
|                 </td> | ||||
|                 <td width="40%" class="header-right company-details"> | ||||
|                 <td width="40%" class="header-section-right invoice-details-container"> | ||||
|                     <h1>Invoice</h1> | ||||
|                     <h4>{{$invoice->invoice_number}}</h4> | ||||
|                     <h4>{{$invoice->formattedInvoiceDate}}</h4> | ||||
| @ -399,18 +393,18 @@ | ||||
|         </table> | ||||
|     </div> | ||||
|     <hr> | ||||
|     <div class="wrapper"> | ||||
|         <div class="address"> | ||||
|             <div class="company"> | ||||
|     <div class="content-wrapper"> | ||||
|         <div class="address-container"> | ||||
|             <div class="company-address-container"> | ||||
|                 @include('app.pdf.invoice.partials.company-address') | ||||
|             </div> | ||||
|             <div class="ship-address-container"> | ||||
|             <div class="shipping-address-container"> | ||||
|                 @include('app.pdf.invoice.partials.shipping-address') | ||||
|             </div> | ||||
|             @if($invoice->user->shippingaddress) | ||||
|             <div class="bill-address-container"> | ||||
|             <div class="billing-address-container"> | ||||
|                 @else | ||||
|                 <div class="bill-address-container" style="float:right;padding-right:0px;"> | ||||
|                 <div class="billing-address-container" style="float:right;padding-right:0px;"> | ||||
|                     @endif | ||||
|                     @include('app.pdf.invoice.partials.billing-address') | ||||
|                 </div> | ||||
| @ -421,4 +415,4 @@ | ||||
|         </div> | ||||
| </body> | ||||
|  | ||||
| </html> | ||||
| </html> | ||||
|  | ||||
		Reference in New Issue
	
	Block a user