mirror of
				https://github.com/crater-invoice/crater.git
				synced 2025-11-03 22:13:18 -05:00 
			
		
		
		
	Compare commits
	
		
			69 Commits
		
	
	
		
			Geoffry304
			...
			3.1.1
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 2e5cb58c39 | |||
| db622e7458 | |||
| 09bbf98e61 | |||
| ca90ff2767 | |||
| 368dd16c9b | |||
| 251648f53c | |||
| ffa5b6b2ad | |||
| bd9beaa343 | |||
| 3e4decdfb9 | |||
| 165907d144 | |||
| 6278417423 | |||
| dc37f565c4 | |||
| 532196a9b4 | |||
| 6a4009e13a | |||
| a8f98e51bb | |||
| 2b03bc798e | |||
| 482556d378 | |||
| deb525af6e | |||
| cb2bfbb91c | |||
| 654395a175 | |||
| e31b60bc48 | |||
| 183953f4c4 | |||
| 98d15143c2 | |||
| a24d8d3ebc | |||
| 4ca574c581 | |||
| c7ce8c87dd | |||
| f64d546672 | |||
| 96187870b4 | |||
| d4a1f1a784 | |||
| e07532961e | |||
| 450c265ded | |||
| f8502c3ca8 | |||
| 899da6990d | |||
| e7675f938e | |||
| b08138e9e0 | |||
| 5df4abdc4b | |||
| a2fa8afa72 | |||
| 7670cd67dc | |||
| 8446ac2b27 | |||
| 63a80e44d5 | |||
| 076df75322 | |||
| 11db99da73 | |||
| 050dca5a50 | |||
| 3c096f1386 | |||
| 0f3e8fce3b | |||
| 325f90bba5 | |||
| a739a938fc | |||
| b30e3a9b11 | |||
| fc1a7c7438 | |||
| 6046113cb1 | |||
| 611ffafec5 | |||
| c497b906df | |||
| c68fce19f9 | |||
| f8913531b6 | |||
| 30f76e2088 | |||
| 39556892cd | |||
| 2fd66bf748 | |||
| d4f1428d5f | |||
| 189141c84d | |||
| f8ccfece09 | |||
| 9a7c926d53 | |||
| c5c1674153 | |||
| 8562ee5414 | |||
| 06c66a756c | |||
| b66d07d21b | |||
| 05001b6a79 | |||
| f02f4ba9d3 | |||
| fbace98aac | |||
| 0f130ab1b8 | 
							
								
								
									
										2
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							@ -11,5 +11,3 @@ Homestead.yaml
 | 
				
			|||||||
.rnd
 | 
					.rnd
 | 
				
			||||||
/.expo
 | 
					/.expo
 | 
				
			||||||
/.vscode
 | 
					/.vscode
 | 
				
			||||||
docker-compose.yml
 | 
					 | 
				
			||||||
docker-compose.yaml
 | 
					 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										74
									
								
								Dockerfile
									
									
									
									
									
								
							
							
						
						
									
										74
									
								
								Dockerfile
									
									
									
									
									
								
							@ -1,53 +1,39 @@
 | 
				
			|||||||
##### STAGE 1 #####
 | 
					FROM php:7.4-fpm
 | 
				
			||||||
 | 
					
 | 
				
			||||||
FROM composer as composer
 | 
					# Arguments defined in docker-compose.yml
 | 
				
			||||||
 | 
					ARG user
 | 
				
			||||||
 | 
					ARG uid
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Copy composer files from project root into composer container's working dir
 | 
					# Install system dependencies
 | 
				
			||||||
COPY composer.* /app/
 | 
					RUN apt-get update && apt-get install -y \
 | 
				
			||||||
 | 
					    git \
 | 
				
			||||||
 | 
					    curl \
 | 
				
			||||||
 | 
					    libpng-dev \
 | 
				
			||||||
 | 
					    libonig-dev \
 | 
				
			||||||
 | 
					    libxml2-dev \
 | 
				
			||||||
 | 
					    zip \
 | 
				
			||||||
 | 
					    unzip \ 
 | 
				
			||||||
 | 
					    libzip-dev \ 
 | 
				
			||||||
 | 
					    libmagickwand-dev
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Copy database directory for autoloader optimization
 | 
					# Clear cache
 | 
				
			||||||
COPY database /app/database
 | 
					RUN apt-get clean && rm -rf /var/lib/apt/lists/*
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Run composer to build dependencies in vendor folder
 | 
					RUN pecl install imagick \ 
 | 
				
			||||||
RUN composer install --no-scripts --no-suggest --no-interaction --prefer-dist --optimize-autoloader 
 | 
					    && docker-php-ext-enable imagick
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Copy everything from project root into composer container's working dir
 | 
					# Install PHP extensions
 | 
				
			||||||
COPY . /app
 | 
					RUN docker-php-ext-install pdo_mysql mbstring zip exif pcntl bcmath gd 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
RUN composer dump-autoload --optimize --classmap-authoritative
 | 
					# Get latest Composer
 | 
				
			||||||
 | 
					COPY --from=composer:latest /usr/bin/composer /usr/bin/composer
 | 
				
			||||||
 | 
					
 | 
				
			||||||
##### STAGE 2 #####
 | 
					# Create system user to run Composer and Artisan Commands
 | 
				
			||||||
 | 
					RUN useradd -G www-data,root -u $uid -d /home/$user $user
 | 
				
			||||||
 | 
					RUN mkdir -p /home/$user/.composer && \
 | 
				
			||||||
 | 
					    chown -R $user:$user /home/$user
 | 
				
			||||||
 | 
					
 | 
				
			||||||
FROM php:7.3.12-fpm-alpine
 | 
					# Set working directory
 | 
				
			||||||
 | 
					WORKDIR /var/www
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Use the default production configuration
 | 
					USER $user
 | 
				
			||||||
RUN mv "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN apk add --no-cache libpng-dev libxml2-dev oniguruma-dev libzip-dev gnu-libiconv && \
 | 
					 | 
				
			||||||
    docker-php-ext-install bcmath ctype json gd mbstring pdo pdo_mysql tokenizer xml zip
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ENV LD_PRELOAD /usr/lib/preloadable_libiconv.so php
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Set container's working dir
 | 
					 | 
				
			||||||
WORKDIR /app
 | 
					 | 
				
			||||||
 
 | 
					 | 
				
			||||||
# Copy everything from project root into php container's working dir
 | 
					 | 
				
			||||||
COPY . /app
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Copy vendor folder from composer container into php container
 | 
					 | 
				
			||||||
COPY --from=composer /app/vendor /app/vendor
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN touch database/database.sqlite && \
 | 
					 | 
				
			||||||
    cp .env.example .env && \
 | 
					 | 
				
			||||||
    php artisan config:cache && \
 | 
					 | 
				
			||||||
    php artisan passport:keys && \
 | 
					 | 
				
			||||||
    php artisan key:generate && \
 | 
					 | 
				
			||||||
    chown -R www-data:www-data . && \
 | 
					 | 
				
			||||||
    chmod -R 755 . && \
 | 
					 | 
				
			||||||
    chmod -R 775 storage/framework/ && \
 | 
					 | 
				
			||||||
    chmod -R 775 storage/logs/ && \
 | 
					 | 
				
			||||||
    chmod -R 775 bootstrap/cache/  
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
EXPOSE 9000
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
CMD ["php-fpm", "--nodaemonize"]
 | 
					 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										190
									
								
								app/Console/Commands/UpdateCommand.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										190
									
								
								app/Console/Commands/UpdateCommand.php
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,190 @@
 | 
				
			|||||||
 | 
					<?php
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					namespace Crater\Console\Commands;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					use Illuminate\Console\Command;
 | 
				
			||||||
 | 
					use Crater\Space\Updater;
 | 
				
			||||||
 | 
					use Crater\Setting;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Implementation taken from Akaunting - https://github.com/akaunting/akaunting
 | 
				
			||||||
 | 
					class UpdateCommand extends Command
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    public $installed;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public $version;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * The name and signature of the console command.
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     * @var string
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    protected $signature = 'crater:update';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * The console command description.
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     * @var string
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    protected $description = 'Automatically update your crater app';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * Create a new command instance.
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     * @return void
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    public function __construct()
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        parent::__construct();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * Execute the console command.
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    public function handle()
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        set_time_limit(3600); // 1 hour
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        $this->installed = $this->getInstalledVersion();
 | 
				
			||||||
 | 
					        $this->version = $this->getLatestVersion();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if (!$this->version) {
 | 
				
			||||||
 | 
					            $this->info('No Update Available! You are already on the latest version.');
 | 
				
			||||||
 | 
					            return;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if (!$this->confirm("Do you wish to update to {$this->version}?")) {
 | 
				
			||||||
 | 
					            return;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if (!$path = $this->download()) {
 | 
				
			||||||
 | 
					            return;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if (!$path = $this->unzip($path)) {
 | 
				
			||||||
 | 
					            return;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if (!$this->copyFiles($path)) {
 | 
				
			||||||
 | 
					            return;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if (!$this->migrateUpdate()) {
 | 
				
			||||||
 | 
					            return;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if (!$this->finish()) {
 | 
				
			||||||
 | 
					            return;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        $this->info('Successfully updated to ' . $this->version);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public function getInstalledVersion()
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        return Setting::getSetting('version');
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public function getLatestVersion()
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        $this->info('Your currently installed version is ' . $this->installed);
 | 
				
			||||||
 | 
					        $this->line('');
 | 
				
			||||||
 | 
					        $this->info('Checking for update...');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        try {
 | 
				
			||||||
 | 
					            $response = Updater::checkForUpdate($this->installed);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            if ($response->success) {
 | 
				
			||||||
 | 
					                return $response->version->version;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            return false;
 | 
				
			||||||
 | 
					        } catch (\Exception $e) {
 | 
				
			||||||
 | 
					            $this->error($e->getMessage());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            return false;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public function download()
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        $this->info('Downloading update...');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        try {
 | 
				
			||||||
 | 
					            $path = Updater::download($this->version);
 | 
				
			||||||
 | 
					            if (!is_string($path)) {
 | 
				
			||||||
 | 
					                $this->error('Download exception');
 | 
				
			||||||
 | 
					                return false;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        } catch (\Exception $e) {
 | 
				
			||||||
 | 
					            $this->error($e->getMessage());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            return false;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return $path;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public function unzip($path)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        $this->info('Unzipping update package...');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        try {
 | 
				
			||||||
 | 
					            $path = Updater::unzip($path);
 | 
				
			||||||
 | 
					            if (!is_string($path)) {
 | 
				
			||||||
 | 
					                $this->error('Unzipping exception');
 | 
				
			||||||
 | 
					                return false;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        } catch (\Exception $e) {
 | 
				
			||||||
 | 
					            $this->error($e->getMessage());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            return false;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return $path;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public function copyFiles($path)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        $this->info('Copying update files...');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        try {
 | 
				
			||||||
 | 
					            Updater::copyFiles($path);
 | 
				
			||||||
 | 
					        } catch (\Exception $e) {
 | 
				
			||||||
 | 
					            $this->error($e->getMessage());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            return false;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return true;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public function migrateUpdate()
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        $this->info('Running Migrations...');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        try {
 | 
				
			||||||
 | 
					            Updater::migrateUpdate();
 | 
				
			||||||
 | 
					        } catch (\Exception $e) {
 | 
				
			||||||
 | 
					            $this->error($e->getMessage());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            return false;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return true;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public function finish()
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        $this->info('Finishing update...');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        try {
 | 
				
			||||||
 | 
					            Updater::finishUpdate($this->installed, $this->version);
 | 
				
			||||||
 | 
					        } catch (\Exception $e) {
 | 
				
			||||||
 | 
					            $this->error($e->getMessage());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            return false;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return true;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -12,7 +12,8 @@ class Kernel extends ConsoleKernel
 | 
				
			|||||||
     * @var array
 | 
					     * @var array
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    protected $commands = [
 | 
					    protected $commands = [
 | 
				
			||||||
        Commands\ResetApp::class
 | 
					        Commands\ResetApp::class,
 | 
				
			||||||
 | 
					        Commands\UpdateCommand::class
 | 
				
			||||||
    ];
 | 
					    ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
 | 
				
			|||||||
@ -1,5 +1,4 @@
 | 
				
			|||||||
<?php
 | 
					<?php
 | 
				
			||||||
 | 
					 | 
				
			||||||
namespace Crater\Http\Controllers;
 | 
					namespace Crater\Http\Controllers;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
use Illuminate\Http\Request;
 | 
					use Illuminate\Http\Request;
 | 
				
			||||||
@ -123,17 +122,17 @@ class CompanyController extends Controller
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        $time_zones = TimeZones::get_list();
 | 
					        $time_zones = TimeZones::get_list();
 | 
				
			||||||
        $fiscal_years = [
 | 
					        $fiscal_years = [
 | 
				
			||||||
            ['key' => 'january-december', 'value' => '1-12'],
 | 
					            ['key' => 'january-december' , 'value' => '1-12'],
 | 
				
			||||||
            ['key' => 'february-january', 'value' => '2-1'],
 | 
					            ['key' => 'february-january' , 'value' => '2-1'],
 | 
				
			||||||
            ['key' => 'march-february', 'value' => '3-2'],
 | 
					            ['key' => 'march-february'   , 'value' => '3-2'],
 | 
				
			||||||
            ['key' => 'april-march', 'value' => '4-3'],
 | 
					            ['key' => 'april-march'      , 'value' => '4-3'],
 | 
				
			||||||
            ['key' => 'may-april', 'value' => '5-4'],
 | 
					            ['key' => 'may-april'        , 'value' => '5-4'],
 | 
				
			||||||
            ['key' => 'june-may', 'value' => '6-5'],
 | 
					            ['key' => 'june-may'         , 'value' => '6-5'],
 | 
				
			||||||
            ['key' => 'july-june', 'value' => '7-6'],
 | 
					            ['key' => 'july-june'        , 'value' => '7-6'],
 | 
				
			||||||
            ['key' => 'august-july', 'value' => '8-7'],
 | 
					            ['key' => 'august-july'      , 'value' => '8-7'],
 | 
				
			||||||
            ['key' => 'september-august', 'value' => '9-8'],
 | 
					            ['key' => 'september-august' , 'value' => '9-8'],
 | 
				
			||||||
            ['key' => 'october-september', 'value' => '10-9'],
 | 
					            ['key' => 'october-september', 'value' => '10-9'],
 | 
				
			||||||
            ['key' => 'november-october', 'value' => '11-10'],
 | 
					            ['key' => 'november-october' , 'value' => '11-10'],
 | 
				
			||||||
            ['key' => 'december-november', 'value' => '12-11'],
 | 
					            ['key' => 'december-november', 'value' => '12-11'],
 | 
				
			||||||
        ];
 | 
					        ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -145,16 +144,13 @@ class CompanyController extends Controller
 | 
				
			|||||||
        $fiscal_year = CompanySetting::getSetting('fiscal_year', $request->header('company'));
 | 
					        $fiscal_year = CompanySetting::getSetting('fiscal_year', $request->header('company'));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        $languages = [  // alphabetical order
 | 
					        $languages = [  // alphabetical order
 | 
				
			||||||
            ["code" => "pt_BR", "name" => "Brazilian Portuguese"],
 | 
					            ["code"=>"pt_BR", "name" => "Brazilian Portuguese"],
 | 
				
			||||||
            ["code" => "en", "name" => "English"],
 | 
					            ["code"=>"en", "name" => "English"],
 | 
				
			||||||
            ["code" => "fr", "name" => "French"],
 | 
					            ["code"=>"fr", "name" => "French"],
 | 
				
			||||||
            ["code" => "de", "name" => "German"],
 | 
					            ["code"=>"de", "name" => "German"],
 | 
				
			||||||
            ["code" => "it", "name" => "Italian"],
 | 
					            ["code"=>"it", "name" => "Italian"],
 | 
				
			||||||
            ["code" => "es", "name" => "Spanish"],
 | 
					            ["code"=>"es", "name" => "Spanish"],
 | 
				
			||||||
            ["code" => "ar", "name" => "العربية"],
 | 
					            ["code"=>"ar", "name" => "العربية"],
 | 
				
			||||||
            ["code" => "de", "name" => "German"],
 | 
					 | 
				
			||||||
            ["code" => "pt_BR", "name" => "Brazilian Portuguese"],
 | 
					 | 
				
			||||||
            ["code" => "nl", "name" => "Dutch"]
 | 
					 | 
				
			||||||
        ];
 | 
					        ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        return response()->json([
 | 
					        return response()->json([
 | 
				
			||||||
@ -199,7 +195,7 @@ class CompanyController extends Controller
 | 
				
			|||||||
        ]);
 | 
					        ]);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public function getCustomizeSetting(Request $request)
 | 
					    public function getCustomizeSetting (Request $request)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        $invoice_prefix = CompanySetting::getSetting('invoice_prefix', $request->header('company'));
 | 
					        $invoice_prefix = CompanySetting::getSetting('invoice_prefix', $request->header('company'));
 | 
				
			||||||
        $invoice_auto_generate = CompanySetting::getSetting('invoice_auto_generate', $request->header('company'));
 | 
					        $invoice_auto_generate = CompanySetting::getSetting('invoice_auto_generate', $request->header('company'));
 | 
				
			||||||
@ -220,7 +216,7 @@ class CompanyController extends Controller
 | 
				
			|||||||
        ]);
 | 
					        ]);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public function updateCustomizeSetting(Request $request)
 | 
					    public function updateCustomizeSetting (Request $request)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        $sets = [];
 | 
					        $sets = [];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -325,10 +321,10 @@ class CompanyController extends Controller
 | 
				
			|||||||
    {
 | 
					    {
 | 
				
			||||||
        $data = json_decode($request->company_logo);
 | 
					        $data = json_decode($request->company_logo);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if ($data) {
 | 
					        if($data) {
 | 
				
			||||||
            $company = Company::find($request->header('company'));
 | 
					            $company = Company::find($request->header('company'));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            if ($company) {
 | 
					            if($company) {
 | 
				
			||||||
                $company->clearMediaCollection('logo');
 | 
					                $company->clearMediaCollection('logo');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                $company->addMediaFromBase64($data->data)
 | 
					                $company->addMediaFromBase64($data->data)
 | 
				
			||||||
@ -352,10 +348,10 @@ class CompanyController extends Controller
 | 
				
			|||||||
    {
 | 
					    {
 | 
				
			||||||
        $data = json_decode($request->admin_avatar);
 | 
					        $data = json_decode($request->admin_avatar);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if ($data) {
 | 
					        if($data) {
 | 
				
			||||||
            $user = auth()->user();
 | 
					            $user = auth()->user();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            if ($user) {
 | 
					            if($user) {
 | 
				
			||||||
                $user->clearMediaCollection('admin_avatar');
 | 
					                $user->clearMediaCollection('admin_avatar');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                $user->addMediaFromBase64($data->data)
 | 
					                $user->addMediaFromBase64($data->data)
 | 
				
			||||||
 | 
				
			|||||||
@ -385,12 +385,12 @@ class EstimatesController extends Controller
 | 
				
			|||||||
    public function estimateToInvoice(Request $request, $id)
 | 
					    public function estimateToInvoice(Request $request, $id)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        $estimate = Estimate::with(['items', 'items.taxes', 'user', 'estimateTemplate', 'taxes'])->find($id);
 | 
					        $estimate = Estimate::with(['items', 'items.taxes', 'user', 'estimateTemplate', 'taxes'])->find($id);
 | 
				
			||||||
        $invoice_date = Carbon::parse($estimate->estimate_date);
 | 
					        $invoice_date = Carbon::now();
 | 
				
			||||||
        $invoice_prefix = CompanySetting::getSetting(
 | 
					        $invoice_prefix = CompanySetting::getSetting(
 | 
				
			||||||
            'invoice_prefix',
 | 
					            'invoice_prefix',
 | 
				
			||||||
            $request->header('company')
 | 
					            $request->header('company')
 | 
				
			||||||
        );
 | 
					        );
 | 
				
			||||||
        $due_date = Carbon::parse($estimate->estimate_date)->addDays(7);
 | 
					        $due_date = Carbon::now()->addDays(7);
 | 
				
			||||||
        $tax_per_item = CompanySetting::getSetting(
 | 
					        $tax_per_item = CompanySetting::getSetting(
 | 
				
			||||||
                'tax_per_item',
 | 
					                'tax_per_item',
 | 
				
			||||||
                $request->header('company')
 | 
					                $request->header('company')
 | 
				
			||||||
 | 
				
			|||||||
@ -1,4 +1,5 @@
 | 
				
			|||||||
<?php
 | 
					<?php
 | 
				
			||||||
 | 
					
 | 
				
			||||||
namespace Crater\Http\Controllers;
 | 
					namespace Crater\Http\Controllers;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
use Crater\Expense;
 | 
					use Crater\Expense;
 | 
				
			||||||
@ -116,7 +117,7 @@ class ExpensesController extends Controller
 | 
				
			|||||||
     * @param  $id
 | 
					     * @param  $id
 | 
				
			||||||
     * @return \Illuminate\Http\JsonResponse
 | 
					     * @return \Illuminate\Http\JsonResponse
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    public function edit(Request $request,$id)
 | 
					    public function edit(Request $request, $id)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        $categories = ExpenseCategory::whereCompany($request->header('company'))->get();
 | 
					        $categories = ExpenseCategory::whereCompany($request->header('company'))->get();
 | 
				
			||||||
        $customers = User::customer()
 | 
					        $customers = User::customer()
 | 
				
			||||||
@ -196,11 +197,11 @@ class ExpensesController extends Controller
 | 
				
			|||||||
    {
 | 
					    {
 | 
				
			||||||
        $data = json_decode($request->attachment_receipt);
 | 
					        $data = json_decode($request->attachment_receipt);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if($data) {
 | 
					        if ($data) {
 | 
				
			||||||
            $expense = Expense::find($id);
 | 
					            $expense = Expense::find($id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            if($expense) {
 | 
					            if ($expense) {
 | 
				
			||||||
                if($request->type === 'edit') {
 | 
					                if ($request->type === 'edit') {
 | 
				
			||||||
                    $expense->clearMediaCollection('receipts');
 | 
					                    $expense->clearMediaCollection('receipts');
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -226,9 +227,9 @@ class ExpensesController extends Controller
 | 
				
			|||||||
        $expense = Expense::find($id);
 | 
					        $expense = Expense::find($id);
 | 
				
			||||||
        $imagePath  = null;
 | 
					        $imagePath  = null;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if($expense) {
 | 
					        if ($expense) {
 | 
				
			||||||
            $media = $expense->getFirstMedia('receipts');
 | 
					            $media = $expense->getFirstMedia('receipts');
 | 
				
			||||||
            if($media) {
 | 
					            if ($media) {
 | 
				
			||||||
                $imagePath = $media->getPath();
 | 
					                $imagePath = $media->getPath();
 | 
				
			||||||
            } else {
 | 
					            } else {
 | 
				
			||||||
                return response()->json([
 | 
					                return response()->json([
 | 
				
			||||||
@ -239,7 +240,7 @@ class ExpensesController extends Controller
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        $type = \File::mimeType($imagePath);
 | 
					        $type = \File::mimeType($imagePath);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        $image = 'data:'.$type.';base64,'.base64_encode(file_get_contents($imagePath));
 | 
					        $image = 'data:' . $type . ';base64,' . base64_encode(file_get_contents($imagePath));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        return response()->json([
 | 
					        return response()->json([
 | 
				
			||||||
            'image' => $image,
 | 
					            'image' => $image,
 | 
				
			||||||
@ -264,17 +265,10 @@ class ExpensesController extends Controller
 | 
				
			|||||||
            ->first();
 | 
					            ->first();
 | 
				
			||||||
        $imagePath  = null;
 | 
					        $imagePath  = null;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if($expense) {
 | 
					        if ($expense) {
 | 
				
			||||||
            $media = $expense->getFirstMedia('receipts');
 | 
					            $media = $expense->getFirstMedia('receipts');
 | 
				
			||||||
            if($media) {
 | 
					            if ($media) {
 | 
				
			||||||
                $imagePath = $media->getPath();
 | 
					                $imagePath = $media->getPath();
 | 
				
			||||||
                $filename = $media->getPath();
 | 
					 | 
				
			||||||
                $type = \File::mimeType($imagePath);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                $headers = array(
 | 
					 | 
				
			||||||
                    'Content-Type' => $type,
 | 
					 | 
				
			||||||
                );
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                $response = \Response::download($imagePath, $media->file_name);
 | 
					                $response = \Response::download($imagePath, $media->file_name);
 | 
				
			||||||
                ob_end_clean();
 | 
					                ob_end_clean();
 | 
				
			||||||
                return $response;
 | 
					                return $response;
 | 
				
			||||||
@ -286,4 +280,3 @@ class ExpensesController extends Controller
 | 
				
			|||||||
        ]);
 | 
					        ]);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
				
			|||||||
@ -2,23 +2,81 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
namespace Crater\Http\Controllers;
 | 
					namespace Crater\Http\Controllers;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					use Crater\Setting;
 | 
				
			||||||
use Illuminate\Http\Request;
 | 
					use Illuminate\Http\Request;
 | 
				
			||||||
use Crater\Space\Updater;
 | 
					use Crater\Space\Updater;
 | 
				
			||||||
use Crater\Space\SiteApi;
 | 
					use Crater\Space\SiteApi;
 | 
				
			||||||
 | 
					use Illuminate\Support\Facades\Artisan;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class UpdateController extends Controller
 | 
					class UpdateController extends Controller
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    public function update(Request $request)
 | 
					
 | 
				
			||||||
 | 
					    public function download(Request $request)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        set_time_limit(600); // 10 minutes
 | 
					        $request->validate([
 | 
				
			||||||
 | 
					            'version' => 'required',
 | 
				
			||||||
 | 
					        ]);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        $json = Updater::update($request->installed, $request->version);
 | 
					        $path = Updater::download($request->version);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        return response()->json($json);
 | 
					        return response()->json([
 | 
				
			||||||
 | 
					            'success' => true,
 | 
				
			||||||
 | 
					            'path' => $path
 | 
				
			||||||
 | 
					        ]);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public function unzip(Request $request)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        $request->validate([
 | 
				
			||||||
 | 
					            'path' => 'required',
 | 
				
			||||||
 | 
					        ]);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        try {
 | 
				
			||||||
 | 
					            $path = Updater::unzip($request->path);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            return response()->json([
 | 
				
			||||||
 | 
					                'success' => true,
 | 
				
			||||||
 | 
					                'path' => $path
 | 
				
			||||||
 | 
					            ]);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        } catch (\Exception $e) {
 | 
				
			||||||
 | 
					            return response()->json([
 | 
				
			||||||
 | 
					                'success' => false,
 | 
				
			||||||
 | 
					                'error' => $e->getMessage()
 | 
				
			||||||
 | 
					            ], 500);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public function copyFiles(Request $request)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        $request->validate([
 | 
				
			||||||
 | 
					            'path' => 'required',
 | 
				
			||||||
 | 
					        ]);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        $path = Updater::copyFiles($request->path);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return response()->json([
 | 
				
			||||||
 | 
					            'success' => true,
 | 
				
			||||||
 | 
					            'path' => $path
 | 
				
			||||||
 | 
					        ]);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public function migrate(Request $request)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        Updater::migrateUpdate();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return response()->json([
 | 
				
			||||||
 | 
					            'success' => true
 | 
				
			||||||
 | 
					        ]);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public function finishUpdate(Request $request)
 | 
					    public function finishUpdate(Request $request)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
 | 
					        $request->validate([
 | 
				
			||||||
 | 
					            'installed' => 'required',
 | 
				
			||||||
 | 
					            'version' => 'required',
 | 
				
			||||||
 | 
					        ]);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        $json = Updater::finishUpdate($request->installed, $request->version);
 | 
					        $json = Updater::finishUpdate($request->installed, $request->version);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        return response()->json($json);
 | 
					        return response()->json($json);
 | 
				
			||||||
@ -28,7 +86,7 @@ class UpdateController extends Controller
 | 
				
			|||||||
    {
 | 
					    {
 | 
				
			||||||
        set_time_limit(600); // 10 minutes
 | 
					        set_time_limit(600); // 10 minutes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        $json = Updater::checkForUpdate();
 | 
					        $json = Updater::checkForUpdate(Setting::getSetting('version'));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        return response()->json($json);
 | 
					        return response()->json($json);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
				
			|||||||
@ -2,6 +2,7 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
namespace Crater\Listeners\Updates;
 | 
					namespace Crater\Listeners\Updates;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Implementation taken from Akaunting - https://github.com/akaunting/akaunting
 | 
				
			||||||
class Listener
 | 
					class Listener
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    const VERSION = '';
 | 
					    const VERSION = '';
 | 
				
			||||||
 | 
				
			|||||||
@ -1,51 +0,0 @@
 | 
				
			|||||||
<?php
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
namespace Crater\Listeners\Updates\v3;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
use Illuminate\Contracts\Queue\ShouldQueue;
 | 
					 | 
				
			||||||
use Illuminate\Queue\InteractsWithQueue;
 | 
					 | 
				
			||||||
use Illuminate\Database\Schema\Blueprint;
 | 
					 | 
				
			||||||
use Crater\Events\UpdateFinished;
 | 
					 | 
				
			||||||
use Crater\Listeners\Updates\Listener;
 | 
					 | 
				
			||||||
use Crater\Setting;
 | 
					 | 
				
			||||||
use Crater\Currency;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
class Version301 extends Listener
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    const VERSION = '3.0.1';
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    /**
 | 
					 | 
				
			||||||
     * Create the event listener.
 | 
					 | 
				
			||||||
     *
 | 
					 | 
				
			||||||
     * @return void
 | 
					 | 
				
			||||||
     */
 | 
					 | 
				
			||||||
    public function __construct()
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        //
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    /**
 | 
					 | 
				
			||||||
     * Handle the event.
 | 
					 | 
				
			||||||
     *
 | 
					 | 
				
			||||||
     * @param  object  $event
 | 
					 | 
				
			||||||
     * @return void
 | 
					 | 
				
			||||||
     */
 | 
					 | 
				
			||||||
    public function handle(UpdateFinished $event)
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        if ($this->isListenerFired($event)) {
 | 
					 | 
				
			||||||
            return;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        Currency::create([
 | 
					 | 
				
			||||||
            'name' => 'Kyrgyzstani som',
 | 
					 | 
				
			||||||
            'code' => 'KGS',
 | 
					 | 
				
			||||||
            'symbol' => 'С̲ ',
 | 
					 | 
				
			||||||
            'precision' => '2',
 | 
					 | 
				
			||||||
            'thousand_separator' => '.',
 | 
					 | 
				
			||||||
            'decimal_separator' => ','
 | 
					 | 
				
			||||||
        ]);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        // Update Crater app version
 | 
					 | 
				
			||||||
        Setting::setSetting('version', static::VERSION);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@ -7,30 +7,46 @@ use Illuminate\Queue\InteractsWithQueue;
 | 
				
			|||||||
use Crater\Listeners\Updates\Listener;
 | 
					use Crater\Listeners\Updates\Listener;
 | 
				
			||||||
use Illuminate\Database\Schema\Blueprint;
 | 
					use Illuminate\Database\Schema\Blueprint;
 | 
				
			||||||
use Crater\Events\UpdateFinished;
 | 
					use Crater\Events\UpdateFinished;
 | 
				
			||||||
 | 
					use Crater\Setting;
 | 
				
			||||||
 | 
					use Crater\Currency;
 | 
				
			||||||
 | 
					use Schema;
 | 
				
			||||||
 | 
					use Artisan;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class Version310
 | 
					class Version310 extends Listener
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    /**
 | 
					    const VERSION = '3.1.0';
 | 
				
			||||||
     * Create the event listener.
 | 
					
 | 
				
			||||||
     *
 | 
					 | 
				
			||||||
     * @return void
 | 
					 | 
				
			||||||
     */
 | 
					 | 
				
			||||||
    public function __construct()
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        //
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * Handle the event.
 | 
					     * Handle the event.
 | 
				
			||||||
     *
 | 
					     *
 | 
				
			||||||
     * @param  object  $event
 | 
					     * @param UpdateFinished $event
 | 
				
			||||||
     * @return void
 | 
					     * @return void
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    public function handle(UpdateFinished $event)
 | 
					    public function handle(UpdateFinished $event)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        \Schema::table('expenses', function (Blueprint $table) {
 | 
					        if ($this->isListenerFired($event)) {
 | 
				
			||||||
            $table->integer('user_id')->unsigned()->nullable();
 | 
					            return;
 | 
				
			||||||
            $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
 | 
					        }
 | 
				
			||||||
        });
 | 
					
 | 
				
			||||||
 | 
					        Currency::firstOrCreate(
 | 
				
			||||||
 | 
					            [
 | 
				
			||||||
 | 
					                'name' => 'Kyrgyzstani som',
 | 
				
			||||||
 | 
					                'code' => 'KGS'
 | 
				
			||||||
 | 
					            ],
 | 
				
			||||||
 | 
					            [
 | 
				
			||||||
 | 
					                'name' => 'Kyrgyzstani som',
 | 
				
			||||||
 | 
					                'code' => 'KGS',
 | 
				
			||||||
 | 
					                'symbol' => 'С̲ ',
 | 
				
			||||||
 | 
					                'precision' => '2',
 | 
				
			||||||
 | 
					                'thousand_separator' => '.',
 | 
				
			||||||
 | 
					                'decimal_separator' => ','
 | 
				
			||||||
 | 
					            ]
 | 
				
			||||||
 | 
					        );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Artisan::call('migrate', ['--force' => true]);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // Update Crater app version
 | 
				
			||||||
 | 
					        Setting::setSetting('version', static::VERSION);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										32
									
								
								app/Listeners/Updates/v3/Version311.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								app/Listeners/Updates/v3/Version311.php
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,32 @@
 | 
				
			|||||||
 | 
					<?php
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					namespace Crater\Listeners\Updates\v3;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					use Crater\Listeners\Updates\Listener;
 | 
				
			||||||
 | 
					use Crater\Events\UpdateFinished;
 | 
				
			||||||
 | 
					use Crater\Setting;
 | 
				
			||||||
 | 
					use Crater\Currency;
 | 
				
			||||||
 | 
					use Artisan;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class Version311 extends Listener
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    const VERSION = '3.1.1';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * Handle the event.
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     * @param UpdateFinished $event
 | 
				
			||||||
 | 
					     * @return void
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    public function handle(UpdateFinished $event)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        if ($this->isListenerFired($event)) {
 | 
				
			||||||
 | 
					            return;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Artisan::call('migrate', ['--force' => true]);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // Update Crater app version
 | 
				
			||||||
 | 
					        Setting::setSetting('version', static::VERSION);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -1,4 +1,5 @@
 | 
				
			|||||||
<?php
 | 
					<?php
 | 
				
			||||||
 | 
					
 | 
				
			||||||
namespace Crater\Providers;
 | 
					namespace Crater\Providers;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider;
 | 
					use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider;
 | 
				
			||||||
@ -11,8 +12,8 @@ use Crater\Listeners\Updates\v2\Version201;
 | 
				
			|||||||
use Crater\Listeners\Updates\v2\Version202;
 | 
					use Crater\Listeners\Updates\v2\Version202;
 | 
				
			||||||
use Crater\Listeners\Updates\v2\Version210;
 | 
					use Crater\Listeners\Updates\v2\Version210;
 | 
				
			||||||
use Crater\Listeners\Updates\v3\Version300;
 | 
					use Crater\Listeners\Updates\v3\Version300;
 | 
				
			||||||
use Crater\Listeners\Updates\v3\Version301;
 | 
					 | 
				
			||||||
use Crater\Listeners\Updates\v3\Version310;
 | 
					use Crater\Listeners\Updates\v3\Version310;
 | 
				
			||||||
 | 
					use Crater\Listeners\Updates\v3\Version311;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class EventServiceProvider extends ServiceProvider
 | 
					class EventServiceProvider extends ServiceProvider
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
@ -22,15 +23,15 @@ class EventServiceProvider extends ServiceProvider
 | 
				
			|||||||
     * @var array
 | 
					     * @var array
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    protected $listen = [
 | 
					    protected $listen = [
 | 
				
			||||||
        UpdateFinished::class=> [
 | 
					        UpdateFinished::class => [
 | 
				
			||||||
            Version110::class,
 | 
					            Version110::class,
 | 
				
			||||||
            Version200::class,
 | 
					            Version200::class,
 | 
				
			||||||
            Version201::class,
 | 
					            Version201::class,
 | 
				
			||||||
            Version202::class,
 | 
					            Version202::class,
 | 
				
			||||||
            Version210::class,
 | 
					            Version210::class,
 | 
				
			||||||
            Version300::class,
 | 
					            Version300::class,
 | 
				
			||||||
            Version301::class,
 | 
					 | 
				
			||||||
            Version310::class,
 | 
					            Version310::class,
 | 
				
			||||||
 | 
					            Version311::class,
 | 
				
			||||||
        ],
 | 
					        ],
 | 
				
			||||||
        Registered::class => [
 | 
					        Registered::class => [
 | 
				
			||||||
            SendEmailVerificationNotification::class,
 | 
					            SendEmailVerificationNotification::class,
 | 
				
			||||||
 | 
				
			|||||||
@ -6,6 +6,7 @@ use GuzzleHttp\Client;
 | 
				
			|||||||
use GuzzleHttp\Exception\RequestException;
 | 
					use GuzzleHttp\Exception\RequestException;
 | 
				
			||||||
use Crater\Setting;
 | 
					use Crater\Setting;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Implementation taken from Akaunting - https://github.com/akaunting/akaunting
 | 
				
			||||||
trait SiteApi
 | 
					trait SiteApi
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -2,31 +2,46 @@
 | 
				
			|||||||
namespace Crater\Space;
 | 
					namespace Crater\Space;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
use File;
 | 
					use File;
 | 
				
			||||||
use ZipArchive;
 | 
					 | 
				
			||||||
use Artisan;
 | 
					use Artisan;
 | 
				
			||||||
use GuzzleHttp\Exception\RequestException;
 | 
					use GuzzleHttp\Exception\RequestException;
 | 
				
			||||||
use Crater\Space\SiteApi;
 | 
					 | 
				
			||||||
use Crater\Events\UpdateFinished;
 | 
					use Crater\Events\UpdateFinished;
 | 
				
			||||||
use Crater\Setting;
 | 
					use ZipArchive;
 | 
				
			||||||
use Illuminate\Http\Request;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Implementation taken from Akaunting - https://github.com/akaunting/akaunting
 | 
				
			||||||
class Updater
 | 
					class Updater
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    use SiteApi;
 | 
					    use SiteApi;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public static function update($installed, $version)
 | 
					    public static function checkForUpdate($installed_version)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        $data = null;
 | 
				
			||||||
 | 
					        if(env('APP_ENV') === 'development')
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            $url = 'https://craterapp.com/downloads/check/latest/'. $installed_version . '?type=update&is_dev=1';
 | 
				
			||||||
 | 
					        } else {
 | 
				
			||||||
 | 
					            $url = 'https://craterapp.com/downloads/check/latest/'. $installed_version . '?type=update';
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        $response = static::getRemote($url, ['timeout' => 100, 'track_redirects' => true]);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if ($response && ($response->getStatusCode() == 200)) {
 | 
				
			||||||
 | 
					            $data = $response->getBody()->getContents();
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return json_decode($data);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public static function download($new_version)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        $data = null;
 | 
					        $data = null;
 | 
				
			||||||
        $path = null;
 | 
					        $path = null;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if(env('APP_ENV') === 'development')
 | 
					        if (env('APP_ENV') === 'development') {
 | 
				
			||||||
        {
 | 
					            $url = 'https://craterapp.com/downloads/file/' . $new_version . '?type=update&is_dev=1';
 | 
				
			||||||
            $url = 'https://craterapp.com/downloads/file/'.$version.'?type=update&is_dev=1';
 | 
					 | 
				
			||||||
        } else {
 | 
					        } else {
 | 
				
			||||||
            $url = 'https://craterapp.com/downloads/file/'.$version.'?type=update';
 | 
					            $url = 'https://craterapp.com/downloads/file/' . $new_version . '?type=update';
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
        $response = static::getRemote($url, ['timeout' => 100, 'track_redirects' => true]);
 | 
					        $response = static::getRemote($url, ['timeout' => 100, 'track_redirects' => true]);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // Exception
 | 
					        // Exception
 | 
				
			||||||
@ -45,66 +60,68 @@ class Updater
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // Create temp directory
 | 
					        // Create temp directory
 | 
				
			||||||
        $path = 'temp-' . md5(mt_rand());
 | 
					        $temp_dir = storage_path('app/temp-' . md5(mt_rand()));
 | 
				
			||||||
        $path2 = 'temp2-' . md5(mt_rand());
 | 
					 | 
				
			||||||
        $temp_path = storage_path('app') . '/' . $path;
 | 
					 | 
				
			||||||
        $temp_path2 = storage_path('app') . '/' . $path2;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if (!File::isDirectory($temp_path)) {
 | 
					        if (!File::isDirectory($temp_dir)) {
 | 
				
			||||||
            File::makeDirectory($temp_path);
 | 
					            File::makeDirectory($temp_dir);
 | 
				
			||||||
            File::makeDirectory($temp_path2);
 | 
					 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        try {
 | 
					        $zip_file_path = $temp_dir . '/upload.zip';
 | 
				
			||||||
 | 
					 | 
				
			||||||
            $file = $temp_path . '/upload.zip';
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // Add content to the Zip file
 | 
					        // Add content to the Zip file
 | 
				
			||||||
            $uploaded = is_int(file_put_contents($file, $data)) ? true : false;
 | 
					        $uploaded = is_int(file_put_contents($zip_file_path, $data)) ? true : false;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if (!$uploaded) {
 | 
					        if (!$uploaded) {
 | 
				
			||||||
            return false;
 | 
					            return false;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return $zip_file_path;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public static function unzip($zip_file_path)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        if(!file_exists($zip_file_path)) {
 | 
				
			||||||
 | 
					            throw new \Exception('Zip file not found');
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        $temp_extract_dir = storage_path('app/temp2-' . md5(mt_rand()));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if (!File::isDirectory($temp_extract_dir)) {
 | 
				
			||||||
 | 
					            File::makeDirectory($temp_extract_dir);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
        // Unzip the file
 | 
					        // Unzip the file
 | 
				
			||||||
        $zip = new ZipArchive();
 | 
					        $zip = new ZipArchive();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            if ($zip->open($file)) {
 | 
					        if ($zip->open($zip_file_path)) {
 | 
				
			||||||
                $zip->extractTo($temp_path2);
 | 
					            $zip->extractTo($temp_extract_dir);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        $zip->close();
 | 
					        $zip->close();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // Delete zip file
 | 
					        // Delete zip file
 | 
				
			||||||
            File::delete($file);
 | 
					        File::delete($zip_file_path);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            if (!File::copyDirectory($temp_path2.'/Crater', base_path())) {
 | 
					        return $temp_extract_dir;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public static function copyFiles($temp_extract_dir)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if (!File::copyDirectory($temp_extract_dir . '/Crater', base_path())) {
 | 
				
			||||||
            return false;
 | 
					            return false;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // Delete temp directory
 | 
					        // Delete temp directory
 | 
				
			||||||
            File::deleteDirectory($temp_path);
 | 
					        File::deleteDirectory($temp_extract_dir);
 | 
				
			||||||
            File::deleteDirectory($temp_path2);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
            return [
 | 
					        return true;
 | 
				
			||||||
                'success' => true,
 | 
					 | 
				
			||||||
                'error' => false,
 | 
					 | 
				
			||||||
                'data' => []
 | 
					 | 
				
			||||||
            ];
 | 
					 | 
				
			||||||
        } catch (\Exception $e) {
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            if (File::isDirectory($temp_path)) {
 | 
					 | 
				
			||||||
                // Delete temp directory
 | 
					 | 
				
			||||||
                File::deleteDirectory($temp_path);
 | 
					 | 
				
			||||||
                File::deleteDirectory($temp_path2);
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            return [
 | 
					    public static function migrateUpdate()
 | 
				
			||||||
                'success' => false,
 | 
					    {
 | 
				
			||||||
                'error' => 'Update error',
 | 
					        Artisan::call('migrate --force');
 | 
				
			||||||
                'data' => []
 | 
					
 | 
				
			||||||
            ];
 | 
					        return true;
 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public static function finishUpdate($installed, $version)
 | 
					    public static function finishUpdate($installed, $version)
 | 
				
			||||||
@ -118,22 +135,4 @@ class Updater
 | 
				
			|||||||
        ];
 | 
					        ];
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public static function checkForUpdate()
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        $data = null;
 | 
					 | 
				
			||||||
        if(env('APP_ENV') === 'development')
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            $url = 'https://craterapp.com/downloads/check/latest/'. Setting::getSetting('version') . '?type=update&is_dev=1';
 | 
					 | 
				
			||||||
        } else {
 | 
					 | 
				
			||||||
            $url = 'https://craterapp.com/downloads/check/latest/'. Setting::getSetting('version') . '?type=update';
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        $response = static::getRemote($url, ['timeout' => 100, 'track_redirects' => true]);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        if ($response && ($response->getStatusCode() == 200)) {
 | 
					 | 
				
			||||||
            $data = $response->getBody()->getContents();
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        return json_decode($data);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -9,6 +9,7 @@
 | 
				
			|||||||
    "type": "project",
 | 
					    "type": "project",
 | 
				
			||||||
    "require": {
 | 
					    "require": {
 | 
				
			||||||
        "php": "^7.2",
 | 
					        "php": "^7.2",
 | 
				
			||||||
 | 
					        "aws/aws-sdk-php": "^3.137",
 | 
				
			||||||
        "barryvdh/laravel-dompdf": "^0.8.1",
 | 
					        "barryvdh/laravel-dompdf": "^0.8.1",
 | 
				
			||||||
        "doctrine/dbal": "^2.10",
 | 
					        "doctrine/dbal": "^2.10",
 | 
				
			||||||
        "fideloper/proxy": "^4.0",
 | 
					        "fideloper/proxy": "^4.0",
 | 
				
			||||||
@ -53,20 +54,11 @@
 | 
				
			|||||||
    "minimum-stability": "dev",
 | 
					    "minimum-stability": "dev",
 | 
				
			||||||
    "prefer-stable": true,
 | 
					    "prefer-stable": true,
 | 
				
			||||||
    "scripts": {
 | 
					    "scripts": {
 | 
				
			||||||
        "initial-setup": [
 | 
					 | 
				
			||||||
            "test -f .env || (cp .env.example .env; php artisan key:generate 2>/dev/null; exit 0)"
 | 
					 | 
				
			||||||
        ],
 | 
					 | 
				
			||||||
        "pre-install-cmd": [
 | 
					 | 
				
			||||||
            "@initial-setup"
 | 
					 | 
				
			||||||
        ],
 | 
					 | 
				
			||||||
        "pre-update-cmd": [
 | 
					 | 
				
			||||||
            "@initial-setup"
 | 
					 | 
				
			||||||
        ],
 | 
					 | 
				
			||||||
        "post-root-package-install": [
 | 
					        "post-root-package-install": [
 | 
				
			||||||
            "@initial-setup"
 | 
					            "php -r \"file_exists('.env') || copy('.env.example', '.env');\""
 | 
				
			||||||
        ],
 | 
					        ],
 | 
				
			||||||
        "post-create-project-cmd": [
 | 
					        "post-create-project-cmd": [
 | 
				
			||||||
            "@initial-setup"
 | 
					            "php artisan key:generate --ansi"
 | 
				
			||||||
        ],
 | 
					        ],
 | 
				
			||||||
        "post-autoload-dump": [
 | 
					        "post-autoload-dump": [
 | 
				
			||||||
            "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
 | 
					            "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										1719
									
								
								composer.lock
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										1719
									
								
								composer.lock
									
									
									
										generated
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@ -9,6 +9,6 @@ return [
 | 
				
			|||||||
    |
 | 
					    |
 | 
				
			||||||
    */
 | 
					    */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    'version' => '3.0.0',
 | 
					    'version' => '3.1.1',
 | 
				
			||||||
 | 
					
 | 
				
			||||||
];
 | 
					];
 | 
				
			||||||
 | 
				
			|||||||
@ -13,6 +13,7 @@ class CreateUnitsTable extends Migration
 | 
				
			|||||||
     */
 | 
					     */
 | 
				
			||||||
    public function up()
 | 
					    public function up()
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
 | 
					        if (!Schema::hasTable('units')) {
 | 
				
			||||||
            Schema::create('units', function (Blueprint $table) {
 | 
					            Schema::create('units', function (Blueprint $table) {
 | 
				
			||||||
                $table->increments('id');
 | 
					                $table->increments('id');
 | 
				
			||||||
                $table->string('name');
 | 
					                $table->string('name');
 | 
				
			||||||
@ -21,6 +22,7 @@ class CreateUnitsTable extends Migration
 | 
				
			|||||||
                $table->timestamps();
 | 
					                $table->timestamps();
 | 
				
			||||||
            });
 | 
					            });
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * Reverse the migrations.
 | 
					     * Reverse the migrations.
 | 
				
			||||||
 | 
				
			|||||||
@ -23,8 +23,6 @@ class CreateExpensesTable extends Migration
 | 
				
			|||||||
            $table->foreign('expense_category_id')->references('id')->on('expense_categories')->onDelete('cascade');
 | 
					            $table->foreign('expense_category_id')->references('id')->on('expense_categories')->onDelete('cascade');
 | 
				
			||||||
            $table->integer('company_id')->unsigned()->nullable();
 | 
					            $table->integer('company_id')->unsigned()->nullable();
 | 
				
			||||||
            $table->foreign('company_id')->references('id')->on('companies')->onDelete('cascade');
 | 
					            $table->foreign('company_id')->references('id')->on('companies')->onDelete('cascade');
 | 
				
			||||||
            $table->integer('user_id')->unsigned()->nullable();
 | 
					 | 
				
			||||||
            $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
 | 
					 | 
				
			||||||
            $table->timestamps();
 | 
					            $table->timestamps();
 | 
				
			||||||
        });
 | 
					        });
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
				
			|||||||
@ -13,6 +13,7 @@ class CreatePaymentMethodsTable extends Migration
 | 
				
			|||||||
     */
 | 
					     */
 | 
				
			||||||
    public function up()
 | 
					    public function up()
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
 | 
					        if (!Schema::hasTable('payment_methods')) {
 | 
				
			||||||
            Schema::create('payment_methods', function (Blueprint $table) {
 | 
					            Schema::create('payment_methods', function (Blueprint $table) {
 | 
				
			||||||
                $table->increments('id');
 | 
					                $table->increments('id');
 | 
				
			||||||
                $table->string('name');
 | 
					                $table->string('name');
 | 
				
			||||||
@ -21,6 +22,7 @@ class CreatePaymentMethodsTable extends Migration
 | 
				
			|||||||
                $table->timestamps();
 | 
					                $table->timestamps();
 | 
				
			||||||
            });
 | 
					            });
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * Reverse the migrations.
 | 
					     * Reverse the migrations.
 | 
				
			||||||
 | 
				
			|||||||
@ -0,0 +1,33 @@
 | 
				
			|||||||
 | 
					<?php
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					use Illuminate\Database\Migrations\Migration;
 | 
				
			||||||
 | 
					use Illuminate\Database\Schema\Blueprint;
 | 
				
			||||||
 | 
					use Illuminate\Support\Facades\Schema;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class AddUserIdToExpensesTable extends Migration
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * Run the migrations.
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     * @return void
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    public function up()
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        Schema::table('expenses', function (Blueprint $table) {
 | 
				
			||||||
 | 
					            $table->integer('user_id')->unsigned()->nullable();
 | 
				
			||||||
 | 
					            $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
 | 
				
			||||||
 | 
					        });
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * Reverse the migrations.
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     * @return void
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    public function down()
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        Schema::table('expenses', function (Blueprint $table) {
 | 
				
			||||||
 | 
					            $table->dropColumn('paid');
 | 
				
			||||||
 | 
					        });
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -1,40 +0,0 @@
 | 
				
			|||||||
version: '3.1'
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
services:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  web:
 | 
					 | 
				
			||||||
    image: nginx
 | 
					 | 
				
			||||||
    depends_on:
 | 
					 | 
				
			||||||
      - php
 | 
					 | 
				
			||||||
    ports:
 | 
					 | 
				
			||||||
      - 8080:80
 | 
					 | 
				
			||||||
    volumes:
 | 
					 | 
				
			||||||
      - ./nginx.conf:/etc/nginx/nginx.conf:ro
 | 
					 | 
				
			||||||
      - app:/app
 | 
					 | 
				
			||||||
    restart: always 
 | 
					 | 
				
			||||||
    
 | 
					 | 
				
			||||||
  php:
 | 
					 | 
				
			||||||
    build: .
 | 
					 | 
				
			||||||
    depends_on:
 | 
					 | 
				
			||||||
      - db
 | 
					 | 
				
			||||||
    expose:
 | 
					 | 
				
			||||||
      - 9000
 | 
					 | 
				
			||||||
    volumes:
 | 
					 | 
				
			||||||
      - app:/app
 | 
					 | 
				
			||||||
    restart: always
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  db:
 | 
					 | 
				
			||||||
    image: mariadb
 | 
					 | 
				
			||||||
    restart: always
 | 
					 | 
				
			||||||
    volumes:
 | 
					 | 
				
			||||||
      - db:/var/lib/mysql
 | 
					 | 
				
			||||||
    environment:
 | 
					 | 
				
			||||||
      MYSQL_USER: crater
 | 
					 | 
				
			||||||
      MYSQL_PASSWORD: crater
 | 
					 | 
				
			||||||
      MYSQL_DATABASE: crater
 | 
					 | 
				
			||||||
      MYSQL_ROOT_PASSWORD: crater
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
volumes:
 | 
					 | 
				
			||||||
  app:
 | 
					 | 
				
			||||||
  db:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
							
								
								
									
										50
									
								
								docker-compose.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										50
									
								
								docker-compose.yml
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,50 @@
 | 
				
			|||||||
 | 
					version: '3.7'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					services:
 | 
				
			||||||
 | 
					  app:
 | 
				
			||||||
 | 
					    build:
 | 
				
			||||||
 | 
					      args:
 | 
				
			||||||
 | 
					        user: crater-user
 | 
				
			||||||
 | 
					        uid: 1000
 | 
				
			||||||
 | 
					      context: ./
 | 
				
			||||||
 | 
					      dockerfile: Dockerfile
 | 
				
			||||||
 | 
					    image: crater-php
 | 
				
			||||||
 | 
					    restart: unless-stopped
 | 
				
			||||||
 | 
					    working_dir: /var/www/
 | 
				
			||||||
 | 
					    volumes:
 | 
				
			||||||
 | 
					      - ./:/var/www
 | 
				
			||||||
 | 
					    networks:
 | 
				
			||||||
 | 
					      - crater
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  db:
 | 
				
			||||||
 | 
					    image: mariadb
 | 
				
			||||||
 | 
					    restart: always
 | 
				
			||||||
 | 
					    volumes:
 | 
				
			||||||
 | 
					      - db:/var/lib/mysql
 | 
				
			||||||
 | 
					    environment:
 | 
				
			||||||
 | 
					      MYSQL_USER: crater
 | 
				
			||||||
 | 
					      MYSQL_PASSWORD: crater
 | 
				
			||||||
 | 
					      MYSQL_DATABASE: crater
 | 
				
			||||||
 | 
					      MYSQL_ROOT_PASSWORD: crater
 | 
				
			||||||
 | 
					    ports:
 | 
				
			||||||
 | 
					      - '33006:3306'
 | 
				
			||||||
 | 
					    networks:
 | 
				
			||||||
 | 
					      - crater
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  nginx:
 | 
				
			||||||
 | 
					    image: nginx:1.17-alpine
 | 
				
			||||||
 | 
					    restart: unless-stopped
 | 
				
			||||||
 | 
					    ports:
 | 
				
			||||||
 | 
					      - 80:80
 | 
				
			||||||
 | 
					    volumes:
 | 
				
			||||||
 | 
					      - ./:/var/www
 | 
				
			||||||
 | 
					      - ./docker-compose/nginx:/etc/nginx/conf.d/
 | 
				
			||||||
 | 
					    networks:
 | 
				
			||||||
 | 
					      - crater
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					volumes:
 | 
				
			||||||
 | 
					  db:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					networks:
 | 
				
			||||||
 | 
					  crater:
 | 
				
			||||||
 | 
					    driver: bridge
 | 
				
			||||||
							
								
								
									
										20
									
								
								docker-compose/nginx/nginx.conf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								docker-compose/nginx/nginx.conf
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,20 @@
 | 
				
			|||||||
 | 
					server {
 | 
				
			||||||
 | 
					    listen 80;
 | 
				
			||||||
 | 
					    index index.php index.html;
 | 
				
			||||||
 | 
					    error_log  /var/log/nginx/error.log;
 | 
				
			||||||
 | 
					    access_log /var/log/nginx/access.log;
 | 
				
			||||||
 | 
					    root /var/www/public;
 | 
				
			||||||
 | 
					    location ~ \.php$ {
 | 
				
			||||||
 | 
					        try_files $uri =404;
 | 
				
			||||||
 | 
					        fastcgi_split_path_info ^(.+\.php)(/.+)$;
 | 
				
			||||||
 | 
					        fastcgi_pass app:9000;
 | 
				
			||||||
 | 
					        fastcgi_index index.php;
 | 
				
			||||||
 | 
					        include fastcgi_params;
 | 
				
			||||||
 | 
					        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
 | 
				
			||||||
 | 
					        fastcgi_param PATH_INFO $fastcgi_path_info;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    location / {
 | 
				
			||||||
 | 
					        try_files $uri $uri/ /index.php?$query_string;
 | 
				
			||||||
 | 
					        gzip_static on;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										7
									
								
								docker-compose/setup.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										7
									
								
								docker-compose/setup.sh
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,7 @@
 | 
				
			|||||||
 | 
					#!/bin/sh
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					docker-compose exec app composer install --no-interaction --prefer-dist --optimize-autoloader
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					docker-compose exec app php artisan storage:link || true
 | 
				
			||||||
 | 
					docker-compose exec app php artisan key:generate
 | 
				
			||||||
 | 
					docker-compose exec app php artisan passport:keys || true
 | 
				
			||||||
							
								
								
									
										53
									
								
								nginx.conf
									
									
									
									
									
								
							
							
						
						
									
										53
									
								
								nginx.conf
									
									
									
									
									
								
							@ -1,53 +0,0 @@
 | 
				
			|||||||
worker_processes  8;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
error_log  /var/log/nginx/error.log warn;
 | 
					 | 
				
			||||||
pid        /var/run/nginx.pid;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
events {
 | 
					 | 
				
			||||||
    worker_connections  4096;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
http {
 | 
					 | 
				
			||||||
    include       /etc/nginx/mime.types;
 | 
					 | 
				
			||||||
    default_type  application/octet-stream;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
 | 
					 | 
				
			||||||
                      '$status $body_bytes_sent "$http_referer" '
 | 
					 | 
				
			||||||
                      '"$http_user_agent" "$http_x_forwarded_for"';
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    access_log  /var/log/nginx/access.log  main;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    sendfile        on;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    keepalive_timeout  65;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    server {
 | 
					 | 
				
			||||||
        listen 80 default_server;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        root /app/public;
 | 
					 | 
				
			||||||
        index index.php;
 | 
					 | 
				
			||||||
        charset utf-8;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        access_log off;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        location / {
 | 
					 | 
				
			||||||
            try_files $uri $uri/ /index.php?$query_string;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        location = /favicon.ico { access_log off; log_not_found off; }
 | 
					 | 
				
			||||||
        location = /robots.txt  { access_log off; log_not_found off; }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        add_header X-Content-Type-Options nosniff;
 | 
					 | 
				
			||||||
        add_header X-XSS-Protection "1; mode=block";
 | 
					 | 
				
			||||||
        add_header X-Robots-Tag none;
 | 
					 | 
				
			||||||
        add_header Content-Security-Policy "frame-ancestors 'self'";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        location ~ \.php$ {
 | 
					 | 
				
			||||||
            fastcgi_pass php:9000;
 | 
					 | 
				
			||||||
            fastcgi_index index.php;
 | 
					 | 
				
			||||||
            include fastcgi_params;
 | 
					 | 
				
			||||||
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
 | 
					 | 
				
			||||||
            include /etc/nginx/fastcgi_params;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
							
								
								
									
										541
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										541
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							@ -2332,11 +2332,6 @@
 | 
				
			|||||||
      "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==",
 | 
					      "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==",
 | 
				
			||||||
      "dev": true
 | 
					      "dev": true
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "@types/color-name": {
 | 
					 | 
				
			||||||
      "version": "1.1.1",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ=="
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "@types/events": {
 | 
					    "@types/events": {
 | 
				
			||||||
      "version": "3.0.0",
 | 
					      "version": "3.0.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@types/events/-/events-3.0.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/@types/events/-/events-3.0.0.tgz",
 | 
				
			||||||
@ -2661,28 +2656,6 @@
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "acorn-node": {
 | 
					 | 
				
			||||||
      "version": "1.8.2",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==",
 | 
					 | 
				
			||||||
      "requires": {
 | 
					 | 
				
			||||||
        "acorn": "^7.0.0",
 | 
					 | 
				
			||||||
        "acorn-walk": "^7.0.0",
 | 
					 | 
				
			||||||
        "xtend": "^4.0.2"
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
      "dependencies": {
 | 
					 | 
				
			||||||
        "acorn": {
 | 
					 | 
				
			||||||
          "version": "7.1.1",
 | 
					 | 
				
			||||||
          "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.1.tgz",
 | 
					 | 
				
			||||||
          "integrity": "sha512-add7dgA5ppRPxCFJoAGfMDi7PIBXq1RtGo7BhbLaxwrXPOmw8gq48Y9ozT01hUKy9byMjlR20EJhu5zlkErEkg=="
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "acorn-walk": {
 | 
					 | 
				
			||||||
      "version": "7.1.1",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.1.1.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-wdlPY2tm/9XBr7QkKlq0WQVgiuGTX6YWPyRyBviSoScBuLfTVQhvwg6wJ369GJ/1nPfTLMfnrFIfjqVg6d+jQQ=="
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "adjust-sourcemap-loader": {
 | 
					    "adjust-sourcemap-loader": {
 | 
				
			||||||
      "version": "2.0.0",
 | 
					      "version": "2.0.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-2.0.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-2.0.0.tgz",
 | 
				
			||||||
@ -2792,6 +2765,7 @@
 | 
				
			|||||||
      "version": "3.2.1",
 | 
					      "version": "3.2.1",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
 | 
				
			||||||
      "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
 | 
					      "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
      "requires": {
 | 
					      "requires": {
 | 
				
			||||||
        "color-convert": "^1.9.0"
 | 
					        "color-convert": "^1.9.0"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
@ -2800,6 +2774,7 @@
 | 
				
			|||||||
          "version": "1.9.3",
 | 
					          "version": "1.9.3",
 | 
				
			||||||
          "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
 | 
					          "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
 | 
				
			||||||
          "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
 | 
					          "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
 | 
				
			||||||
 | 
					          "dev": true,
 | 
				
			||||||
          "requires": {
 | 
					          "requires": {
 | 
				
			||||||
            "color-name": "1.1.3"
 | 
					            "color-name": "1.1.3"
 | 
				
			||||||
          }
 | 
					          }
 | 
				
			||||||
@ -2807,7 +2782,8 @@
 | 
				
			|||||||
        "color-name": {
 | 
					        "color-name": {
 | 
				
			||||||
          "version": "1.1.3",
 | 
					          "version": "1.1.3",
 | 
				
			||||||
          "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
 | 
					          "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
 | 
				
			||||||
          "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
 | 
					          "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
 | 
				
			||||||
 | 
					          "dev": true
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
@ -3102,7 +3078,8 @@
 | 
				
			|||||||
    "balanced-match": {
 | 
					    "balanced-match": {
 | 
				
			||||||
      "version": "1.0.0",
 | 
					      "version": "1.0.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
 | 
				
			||||||
      "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
 | 
					      "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
 | 
				
			||||||
 | 
					      "dev": true
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "base": {
 | 
					    "base": {
 | 
				
			||||||
      "version": "0.11.2",
 | 
					      "version": "0.11.2",
 | 
				
			||||||
@ -3287,10 +3264,16 @@
 | 
				
			|||||||
      "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=",
 | 
					      "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=",
 | 
				
			||||||
      "dev": true
 | 
					      "dev": true
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "bootstrap": {
 | 
				
			||||||
 | 
					      "version": "4.4.1",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.4.1.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-tbx5cHubwE6e2ZG7nqM3g/FZ5PQEDMWmMGNrCUBVRPHXTJaH7CBDdsLeu3eCh3B1tzAxTnAbtmrzvWEvT2NNEA=="
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "brace-expansion": {
 | 
					    "brace-expansion": {
 | 
				
			||||||
      "version": "1.1.11",
 | 
					      "version": "1.1.11",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
 | 
				
			||||||
      "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
 | 
					      "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
      "requires": {
 | 
					      "requires": {
 | 
				
			||||||
        "balanced-match": "^1.0.0",
 | 
					        "balanced-match": "^1.0.0",
 | 
				
			||||||
        "concat-map": "0.0.1"
 | 
					        "concat-map": "0.0.1"
 | 
				
			||||||
@ -3458,7 +3441,8 @@
 | 
				
			|||||||
    "bytes": {
 | 
					    "bytes": {
 | 
				
			||||||
      "version": "3.1.0",
 | 
					      "version": "3.1.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz",
 | 
				
			||||||
      "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg=="
 | 
					      "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==",
 | 
				
			||||||
 | 
					      "dev": true
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "cacache": {
 | 
					    "cacache": {
 | 
				
			||||||
      "version": "12.0.3",
 | 
					      "version": "12.0.3",
 | 
				
			||||||
@ -3571,11 +3555,6 @@
 | 
				
			|||||||
        "upper-case": "^1.1.1"
 | 
					        "upper-case": "^1.1.1"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "camelcase-css": {
 | 
					 | 
				
			||||||
      "version": "2.0.1",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA=="
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "caniuse-api": {
 | 
					    "caniuse-api": {
 | 
				
			||||||
      "version": "1.6.1",
 | 
					      "version": "1.6.1",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-1.6.1.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-1.6.1.tgz",
 | 
				
			||||||
@ -3604,6 +3583,7 @@
 | 
				
			|||||||
      "version": "2.4.2",
 | 
					      "version": "2.4.2",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
 | 
				
			||||||
      "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
 | 
					      "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
      "requires": {
 | 
					      "requires": {
 | 
				
			||||||
        "ansi-styles": "^3.2.1",
 | 
					        "ansi-styles": "^3.2.1",
 | 
				
			||||||
        "escape-string-regexp": "^1.0.5",
 | 
					        "escape-string-regexp": "^1.0.5",
 | 
				
			||||||
@ -3979,7 +3959,8 @@
 | 
				
			|||||||
    "concat-map": {
 | 
					    "concat-map": {
 | 
				
			||||||
      "version": "0.0.1",
 | 
					      "version": "0.0.1",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
 | 
				
			||||||
      "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
 | 
					      "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
 | 
				
			||||||
 | 
					      "dev": true
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "concat-stream": {
 | 
					    "concat-stream": {
 | 
				
			||||||
      "version": "1.6.2",
 | 
					      "version": "1.6.2",
 | 
				
			||||||
@ -4369,7 +4350,8 @@
 | 
				
			|||||||
    "css-unit-converter": {
 | 
					    "css-unit-converter": {
 | 
				
			||||||
      "version": "1.1.1",
 | 
					      "version": "1.1.1",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/css-unit-converter/-/css-unit-converter-1.1.1.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/css-unit-converter/-/css-unit-converter-1.1.1.tgz",
 | 
				
			||||||
      "integrity": "sha1-2bkoGtz9jO2TW9urqDeGiX9k6ZY="
 | 
					      "integrity": "sha1-2bkoGtz9jO2TW9urqDeGiX9k6ZY=",
 | 
				
			||||||
 | 
					      "dev": true
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "css-what": {
 | 
					    "css-what": {
 | 
				
			||||||
      "version": "2.1.3",
 | 
					      "version": "2.1.3",
 | 
				
			||||||
@ -5112,7 +5094,8 @@
 | 
				
			|||||||
    "defined": {
 | 
					    "defined": {
 | 
				
			||||||
      "version": "1.0.0",
 | 
					      "version": "1.0.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz",
 | 
				
			||||||
      "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM="
 | 
					      "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=",
 | 
				
			||||||
 | 
					      "dev": true
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "del": {
 | 
					    "del": {
 | 
				
			||||||
      "version": "4.1.1",
 | 
					      "version": "4.1.1",
 | 
				
			||||||
@ -5192,23 +5175,6 @@
 | 
				
			|||||||
      "integrity": "sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==",
 | 
					      "integrity": "sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==",
 | 
				
			||||||
      "dev": true
 | 
					      "dev": true
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "detective": {
 | 
					 | 
				
			||||||
      "version": "5.2.0",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.0.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg==",
 | 
					 | 
				
			||||||
      "requires": {
 | 
					 | 
				
			||||||
        "acorn-node": "^1.6.1",
 | 
					 | 
				
			||||||
        "defined": "^1.0.0",
 | 
					 | 
				
			||||||
        "minimist": "^1.1.1"
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
      "dependencies": {
 | 
					 | 
				
			||||||
        "minimist": {
 | 
					 | 
				
			||||||
          "version": "1.2.5",
 | 
					 | 
				
			||||||
          "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
 | 
					 | 
				
			||||||
          "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw=="
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "diffie-hellman": {
 | 
					    "diffie-hellman": {
 | 
				
			||||||
      "version": "5.0.3",
 | 
					      "version": "5.0.3",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz",
 | 
				
			||||||
@ -5554,7 +5520,8 @@
 | 
				
			|||||||
    "escape-string-regexp": {
 | 
					    "escape-string-regexp": {
 | 
				
			||||||
      "version": "1.0.5",
 | 
					      "version": "1.0.5",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
 | 
				
			||||||
      "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
 | 
					      "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
 | 
				
			||||||
 | 
					      "dev": true
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "eslint": {
 | 
					    "eslint": {
 | 
				
			||||||
      "version": "4.19.1",
 | 
					      "version": "4.19.1",
 | 
				
			||||||
@ -6584,7 +6551,8 @@
 | 
				
			|||||||
    "fs.realpath": {
 | 
					    "fs.realpath": {
 | 
				
			||||||
      "version": "1.0.0",
 | 
					      "version": "1.0.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
 | 
				
			||||||
      "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
 | 
					      "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
 | 
				
			||||||
 | 
					      "dev": true
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "fsevents": {
 | 
					    "fsevents": {
 | 
				
			||||||
      "version": "1.2.9",
 | 
					      "version": "1.2.9",
 | 
				
			||||||
@ -7243,6 +7211,7 @@
 | 
				
			|||||||
      "version": "7.1.4",
 | 
					      "version": "7.1.4",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz",
 | 
				
			||||||
      "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==",
 | 
					      "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
      "requires": {
 | 
					      "requires": {
 | 
				
			||||||
        "fs.realpath": "^1.0.0",
 | 
					        "fs.realpath": "^1.0.0",
 | 
				
			||||||
        "inflight": "^1.0.4",
 | 
					        "inflight": "^1.0.4",
 | 
				
			||||||
@ -7355,7 +7324,8 @@
 | 
				
			|||||||
    "graceful-fs": {
 | 
					    "graceful-fs": {
 | 
				
			||||||
      "version": "4.2.2",
 | 
					      "version": "4.2.2",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.2.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.2.tgz",
 | 
				
			||||||
      "integrity": "sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q=="
 | 
					      "integrity": "sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q==",
 | 
				
			||||||
 | 
					      "dev": true
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "growly": {
 | 
					    "growly": {
 | 
				
			||||||
      "version": "1.3.0",
 | 
					      "version": "1.3.0",
 | 
				
			||||||
@ -7395,7 +7365,8 @@
 | 
				
			|||||||
    "has-flag": {
 | 
					    "has-flag": {
 | 
				
			||||||
      "version": "3.0.0",
 | 
					      "version": "3.0.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
 | 
				
			||||||
      "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0="
 | 
					      "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
 | 
				
			||||||
 | 
					      "dev": true
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "has-symbols": {
 | 
					    "has-symbols": {
 | 
				
			||||||
      "version": "1.0.0",
 | 
					      "version": "1.0.0",
 | 
				
			||||||
@ -7882,7 +7853,8 @@
 | 
				
			|||||||
    "indexes-of": {
 | 
					    "indexes-of": {
 | 
				
			||||||
      "version": "1.0.1",
 | 
					      "version": "1.0.1",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz",
 | 
				
			||||||
      "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc="
 | 
					      "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=",
 | 
				
			||||||
 | 
					      "dev": true
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "infer-owner": {
 | 
					    "infer-owner": {
 | 
				
			||||||
      "version": "1.0.4",
 | 
					      "version": "1.0.4",
 | 
				
			||||||
@ -7894,6 +7866,7 @@
 | 
				
			|||||||
      "version": "1.0.6",
 | 
					      "version": "1.0.6",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
 | 
				
			||||||
      "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
 | 
					      "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
      "requires": {
 | 
					      "requires": {
 | 
				
			||||||
        "once": "^1.3.0",
 | 
					        "once": "^1.3.0",
 | 
				
			||||||
        "wrappy": "1"
 | 
					        "wrappy": "1"
 | 
				
			||||||
@ -7902,7 +7875,8 @@
 | 
				
			|||||||
    "inherits": {
 | 
					    "inherits": {
 | 
				
			||||||
      "version": "2.0.4",
 | 
					      "version": "2.0.4",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
 | 
				
			||||||
      "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
 | 
					      "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
 | 
				
			||||||
 | 
					      "dev": true
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "ini": {
 | 
					    "ini": {
 | 
				
			||||||
      "version": "1.3.5",
 | 
					      "version": "1.3.5",
 | 
				
			||||||
@ -8824,11 +8798,6 @@
 | 
				
			|||||||
      "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=",
 | 
					      "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=",
 | 
				
			||||||
      "dev": true
 | 
					      "dev": true
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "lodash.toarray": {
 | 
					 | 
				
			||||||
      "version": "4.4.0",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/lodash.toarray/-/lodash.toarray-4.4.0.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha1-JMS/zWsvuji/0FlNsRedjptlZWE="
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "lodash.uniq": {
 | 
					    "lodash.uniq": {
 | 
				
			||||||
      "version": "4.5.0",
 | 
					      "version": "4.5.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz",
 | 
				
			||||||
@ -9094,6 +9063,7 @@
 | 
				
			|||||||
      "version": "3.0.4",
 | 
					      "version": "3.0.4",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
 | 
				
			||||||
      "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
 | 
					      "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
      "requires": {
 | 
					      "requires": {
 | 
				
			||||||
        "brace-expansion": "^1.1.7"
 | 
					        "brace-expansion": "^1.1.7"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
@ -9263,14 +9233,6 @@
 | 
				
			|||||||
        "lower-case": "^1.1.1"
 | 
					        "lower-case": "^1.1.1"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "node-emoji": {
 | 
					 | 
				
			||||||
      "version": "1.10.0",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.10.0.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-Yt3384If5H6BYGVHiHwTL+99OzJKHhgp82S8/dktEK73T26BazdgZ4JZh92xSVtGNJvz9UbXdNAc5hcrXV42vw==",
 | 
					 | 
				
			||||||
      "requires": {
 | 
					 | 
				
			||||||
        "lodash.toarray": "^4.4.0"
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "node-forge": {
 | 
					    "node-forge": {
 | 
				
			||||||
      "version": "0.9.0",
 | 
					      "version": "0.9.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.9.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.9.0.tgz",
 | 
				
			||||||
@ -9355,7 +9317,8 @@
 | 
				
			|||||||
    "normalize-range": {
 | 
					    "normalize-range": {
 | 
				
			||||||
      "version": "0.1.2",
 | 
					      "version": "0.1.2",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz",
 | 
				
			||||||
      "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI="
 | 
					      "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=",
 | 
				
			||||||
 | 
					      "dev": true
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "normalize-url": {
 | 
					    "normalize-url": {
 | 
				
			||||||
      "version": "1.9.1",
 | 
					      "version": "1.9.1",
 | 
				
			||||||
@ -9369,11 +9332,6 @@
 | 
				
			|||||||
        "sort-keys": "^1.0.0"
 | 
					        "sort-keys": "^1.0.0"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "normalize.css": {
 | 
					 | 
				
			||||||
      "version": "8.0.1",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/normalize.css/-/normalize.css-8.0.1.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-qizSNPO93t1YUuUhP22btGOo3chcvDFqFaj2TRybP0DMxkHOCTYwp3n34fel4a31ORXy4m1Xq0Gyqpb5m33qIg=="
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "npm-run-path": {
 | 
					    "npm-run-path": {
 | 
				
			||||||
      "version": "2.0.2",
 | 
					      "version": "2.0.2",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
 | 
				
			||||||
@ -9395,7 +9353,8 @@
 | 
				
			|||||||
    "num2fraction": {
 | 
					    "num2fraction": {
 | 
				
			||||||
      "version": "1.2.2",
 | 
					      "version": "1.2.2",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz",
 | 
				
			||||||
      "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4="
 | 
					      "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=",
 | 
				
			||||||
 | 
					      "dev": true
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "number-is-nan": {
 | 
					    "number-is-nan": {
 | 
				
			||||||
      "version": "1.0.1",
 | 
					      "version": "1.0.1",
 | 
				
			||||||
@ -9406,7 +9365,8 @@
 | 
				
			|||||||
    "object-assign": {
 | 
					    "object-assign": {
 | 
				
			||||||
      "version": "4.1.1",
 | 
					      "version": "4.1.1",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
 | 
				
			||||||
      "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
 | 
					      "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
 | 
				
			||||||
 | 
					      "dev": true
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "object-copy": {
 | 
					    "object-copy": {
 | 
				
			||||||
      "version": "0.1.0",
 | 
					      "version": "0.1.0",
 | 
				
			||||||
@ -9566,6 +9526,7 @@
 | 
				
			|||||||
      "version": "1.4.0",
 | 
					      "version": "1.4.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
 | 
				
			||||||
      "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
 | 
					      "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
      "requires": {
 | 
					      "requires": {
 | 
				
			||||||
        "wrappy": "1"
 | 
					        "wrappy": "1"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
@ -9785,7 +9746,8 @@
 | 
				
			|||||||
    "path-is-absolute": {
 | 
					    "path-is-absolute": {
 | 
				
			||||||
      "version": "1.0.1",
 | 
					      "version": "1.0.1",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
 | 
				
			||||||
      "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
 | 
					      "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
 | 
				
			||||||
 | 
					      "dev": true
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "path-is-inside": {
 | 
					    "path-is-inside": {
 | 
				
			||||||
      "version": "1.0.2",
 | 
					      "version": "1.0.2",
 | 
				
			||||||
@ -9802,7 +9764,8 @@
 | 
				
			|||||||
    "path-parse": {
 | 
					    "path-parse": {
 | 
				
			||||||
      "version": "1.0.6",
 | 
					      "version": "1.0.6",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
 | 
				
			||||||
      "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw=="
 | 
					      "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==",
 | 
				
			||||||
 | 
					      "dev": true
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "path-to-regexp": {
 | 
					    "path-to-regexp": {
 | 
				
			||||||
      "version": "0.1.7",
 | 
					      "version": "0.1.7",
 | 
				
			||||||
@ -9838,59 +9801,6 @@
 | 
				
			|||||||
        "pinkie": "^2.0.0"
 | 
					        "pinkie": "^2.0.0"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "pkg-up": {
 | 
					 | 
				
			||||||
      "version": "3.1.0",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==",
 | 
					 | 
				
			||||||
      "requires": {
 | 
					 | 
				
			||||||
        "find-up": "^3.0.0"
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
      "dependencies": {
 | 
					 | 
				
			||||||
        "find-up": {
 | 
					 | 
				
			||||||
          "version": "3.0.0",
 | 
					 | 
				
			||||||
          "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
 | 
					 | 
				
			||||||
          "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
 | 
					 | 
				
			||||||
          "requires": {
 | 
					 | 
				
			||||||
            "locate-path": "^3.0.0"
 | 
					 | 
				
			||||||
          }
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "locate-path": {
 | 
					 | 
				
			||||||
          "version": "3.0.0",
 | 
					 | 
				
			||||||
          "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
 | 
					 | 
				
			||||||
          "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
 | 
					 | 
				
			||||||
          "requires": {
 | 
					 | 
				
			||||||
            "p-locate": "^3.0.0",
 | 
					 | 
				
			||||||
            "path-exists": "^3.0.0"
 | 
					 | 
				
			||||||
          }
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "p-limit": {
 | 
					 | 
				
			||||||
          "version": "2.2.2",
 | 
					 | 
				
			||||||
          "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz",
 | 
					 | 
				
			||||||
          "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==",
 | 
					 | 
				
			||||||
          "requires": {
 | 
					 | 
				
			||||||
            "p-try": "^2.0.0"
 | 
					 | 
				
			||||||
          }
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "p-locate": {
 | 
					 | 
				
			||||||
          "version": "3.0.0",
 | 
					 | 
				
			||||||
          "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
 | 
					 | 
				
			||||||
          "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
 | 
					 | 
				
			||||||
          "requires": {
 | 
					 | 
				
			||||||
            "p-limit": "^2.0.0"
 | 
					 | 
				
			||||||
          }
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "p-try": {
 | 
					 | 
				
			||||||
          "version": "2.2.0",
 | 
					 | 
				
			||||||
          "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
 | 
					 | 
				
			||||||
          "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ=="
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "path-exists": {
 | 
					 | 
				
			||||||
          "version": "3.0.0",
 | 
					 | 
				
			||||||
          "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
 | 
					 | 
				
			||||||
          "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU="
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "pluralize": {
 | 
					    "pluralize": {
 | 
				
			||||||
      "version": "7.0.0",
 | 
					      "version": "7.0.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz",
 | 
				
			||||||
@ -10073,68 +9983,6 @@
 | 
				
			|||||||
        "postcss": "^5.0.4"
 | 
					        "postcss": "^5.0.4"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "postcss-functions": {
 | 
					 | 
				
			||||||
      "version": "3.0.0",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/postcss-functions/-/postcss-functions-3.0.0.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha1-DpTQFERwCkgd4g3k1V+yZAVkJQ4=",
 | 
					 | 
				
			||||||
      "requires": {
 | 
					 | 
				
			||||||
        "glob": "^7.1.2",
 | 
					 | 
				
			||||||
        "object-assign": "^4.1.1",
 | 
					 | 
				
			||||||
        "postcss": "^6.0.9",
 | 
					 | 
				
			||||||
        "postcss-value-parser": "^3.3.0"
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
      "dependencies": {
 | 
					 | 
				
			||||||
        "postcss": {
 | 
					 | 
				
			||||||
          "version": "6.0.23",
 | 
					 | 
				
			||||||
          "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz",
 | 
					 | 
				
			||||||
          "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==",
 | 
					 | 
				
			||||||
          "requires": {
 | 
					 | 
				
			||||||
            "chalk": "^2.4.1",
 | 
					 | 
				
			||||||
            "source-map": "^0.6.1",
 | 
					 | 
				
			||||||
            "supports-color": "^5.4.0"
 | 
					 | 
				
			||||||
          }
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "source-map": {
 | 
					 | 
				
			||||||
          "version": "0.6.1",
 | 
					 | 
				
			||||||
          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
 | 
					 | 
				
			||||||
          "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "postcss-js": {
 | 
					 | 
				
			||||||
      "version": "2.0.3",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-2.0.3.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-zS59pAk3deu6dVHyrGqmC3oDXBdNdajk4k1RyxeVXCrcEDBUBHoIhE4QTsmhxgzXxsaqFDAkUZfmMa5f/N/79w==",
 | 
					 | 
				
			||||||
      "requires": {
 | 
					 | 
				
			||||||
        "camelcase-css": "^2.0.1",
 | 
					 | 
				
			||||||
        "postcss": "^7.0.18"
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
      "dependencies": {
 | 
					 | 
				
			||||||
        "postcss": {
 | 
					 | 
				
			||||||
          "version": "7.0.27",
 | 
					 | 
				
			||||||
          "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz",
 | 
					 | 
				
			||||||
          "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==",
 | 
					 | 
				
			||||||
          "requires": {
 | 
					 | 
				
			||||||
            "chalk": "^2.4.2",
 | 
					 | 
				
			||||||
            "source-map": "^0.6.1",
 | 
					 | 
				
			||||||
            "supports-color": "^6.1.0"
 | 
					 | 
				
			||||||
          }
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "source-map": {
 | 
					 | 
				
			||||||
          "version": "0.6.1",
 | 
					 | 
				
			||||||
          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
 | 
					 | 
				
			||||||
          "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "supports-color": {
 | 
					 | 
				
			||||||
          "version": "6.1.0",
 | 
					 | 
				
			||||||
          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
 | 
					 | 
				
			||||||
          "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
 | 
					 | 
				
			||||||
          "requires": {
 | 
					 | 
				
			||||||
            "has-flag": "^3.0.0"
 | 
					 | 
				
			||||||
          }
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "postcss-load-config": {
 | 
					    "postcss-load-config": {
 | 
				
			||||||
      "version": "2.1.0",
 | 
					      "version": "2.1.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.1.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.1.0.tgz",
 | 
				
			||||||
@ -10425,55 +10273,6 @@
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "postcss-nested": {
 | 
					 | 
				
			||||||
      "version": "4.2.1",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-4.2.1.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-AMayXX8tS0HCp4O4lolp4ygj9wBn32DJWXvG6gCv+ZvJrEa00GUxJcJEEzMh87BIe6FrWdYkpR2cuyqHKrxmXw==",
 | 
					 | 
				
			||||||
      "requires": {
 | 
					 | 
				
			||||||
        "postcss": "^7.0.21",
 | 
					 | 
				
			||||||
        "postcss-selector-parser": "^6.0.2"
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
      "dependencies": {
 | 
					 | 
				
			||||||
        "cssesc": {
 | 
					 | 
				
			||||||
          "version": "3.0.0",
 | 
					 | 
				
			||||||
          "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
 | 
					 | 
				
			||||||
          "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg=="
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "postcss": {
 | 
					 | 
				
			||||||
          "version": "7.0.27",
 | 
					 | 
				
			||||||
          "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz",
 | 
					 | 
				
			||||||
          "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==",
 | 
					 | 
				
			||||||
          "requires": {
 | 
					 | 
				
			||||||
            "chalk": "^2.4.2",
 | 
					 | 
				
			||||||
            "source-map": "^0.6.1",
 | 
					 | 
				
			||||||
            "supports-color": "^6.1.0"
 | 
					 | 
				
			||||||
          }
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "postcss-selector-parser": {
 | 
					 | 
				
			||||||
          "version": "6.0.2",
 | 
					 | 
				
			||||||
          "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz",
 | 
					 | 
				
			||||||
          "integrity": "sha512-36P2QR59jDTOAiIkqEprfJDsoNrvwFei3eCqKd1Y0tUsBimsq39BLp7RD+JWny3WgB1zGhJX8XVePwm9k4wdBg==",
 | 
					 | 
				
			||||||
          "requires": {
 | 
					 | 
				
			||||||
            "cssesc": "^3.0.0",
 | 
					 | 
				
			||||||
            "indexes-of": "^1.0.1",
 | 
					 | 
				
			||||||
            "uniq": "^1.0.1"
 | 
					 | 
				
			||||||
          }
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "source-map": {
 | 
					 | 
				
			||||||
          "version": "0.6.1",
 | 
					 | 
				
			||||||
          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
 | 
					 | 
				
			||||||
          "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "supports-color": {
 | 
					 | 
				
			||||||
          "version": "6.1.0",
 | 
					 | 
				
			||||||
          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
 | 
					 | 
				
			||||||
          "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
 | 
					 | 
				
			||||||
          "requires": {
 | 
					 | 
				
			||||||
            "has-flag": "^3.0.0"
 | 
					 | 
				
			||||||
          }
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "postcss-normalize-charset": {
 | 
					    "postcss-normalize-charset": {
 | 
				
			||||||
      "version": "1.1.1",
 | 
					      "version": "1.1.1",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-1.1.1.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-1.1.1.tgz",
 | 
				
			||||||
@ -10857,7 +10656,8 @@
 | 
				
			|||||||
    "postcss-value-parser": {
 | 
					    "postcss-value-parser": {
 | 
				
			||||||
      "version": "3.3.1",
 | 
					      "version": "3.3.1",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
 | 
				
			||||||
      "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ=="
 | 
					      "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==",
 | 
				
			||||||
 | 
					      "dev": true
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "postcss-zindex": {
 | 
					    "postcss-zindex": {
 | 
				
			||||||
      "version": "2.2.0",
 | 
					      "version": "2.2.0",
 | 
				
			||||||
@ -10897,11 +10697,6 @@
 | 
				
			|||||||
        "fast-diff": "^1.1.2"
 | 
					        "fast-diff": "^1.1.2"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "pretty-hrtime": {
 | 
					 | 
				
			||||||
      "version": "1.0.3",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE="
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "private": {
 | 
					    "private": {
 | 
				
			||||||
      "version": "0.1.8",
 | 
					      "version": "0.1.8",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz",
 | 
				
			||||||
@ -12432,6 +12227,7 @@
 | 
				
			|||||||
      "version": "5.5.0",
 | 
					      "version": "5.5.0",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
 | 
				
			||||||
      "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
 | 
					      "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
 | 
				
			||||||
 | 
					      "dev": true,
 | 
				
			||||||
      "requires": {
 | 
					      "requires": {
 | 
				
			||||||
        "has-flag": "^3.0.0"
 | 
					        "has-flag": "^3.0.0"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
@ -12512,231 +12308,6 @@
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "tailwindcss": {
 | 
					 | 
				
			||||||
      "version": "1.2.0",
 | 
					 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-1.2.0.tgz",
 | 
					 | 
				
			||||||
      "integrity": "sha512-CKvY0ytB3ze5qvynG7qv4XSpQtFNGPbu9pUn8qFdkqgD8Yo/vGss8mhzbqls44YCXTl4G62p3qVZBj45qrd6FQ==",
 | 
					 | 
				
			||||||
      "requires": {
 | 
					 | 
				
			||||||
        "autoprefixer": "^9.4.5",
 | 
					 | 
				
			||||||
        "bytes": "^3.0.0",
 | 
					 | 
				
			||||||
        "chalk": "^3.0.0",
 | 
					 | 
				
			||||||
        "detective": "^5.2.0",
 | 
					 | 
				
			||||||
        "fs-extra": "^8.0.0",
 | 
					 | 
				
			||||||
        "lodash": "^4.17.15",
 | 
					 | 
				
			||||||
        "node-emoji": "^1.8.1",
 | 
					 | 
				
			||||||
        "normalize.css": "^8.0.1",
 | 
					 | 
				
			||||||
        "postcss": "^7.0.11",
 | 
					 | 
				
			||||||
        "postcss-functions": "^3.0.0",
 | 
					 | 
				
			||||||
        "postcss-js": "^2.0.0",
 | 
					 | 
				
			||||||
        "postcss-nested": "^4.1.1",
 | 
					 | 
				
			||||||
        "postcss-selector-parser": "^6.0.0",
 | 
					 | 
				
			||||||
        "pretty-hrtime": "^1.0.3",
 | 
					 | 
				
			||||||
        "reduce-css-calc": "^2.1.6",
 | 
					 | 
				
			||||||
        "resolve": "^1.14.2"
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
      "dependencies": {
 | 
					 | 
				
			||||||
        "autoprefixer": {
 | 
					 | 
				
			||||||
          "version": "9.7.5",
 | 
					 | 
				
			||||||
          "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.7.5.tgz",
 | 
					 | 
				
			||||||
          "integrity": "sha512-URo6Zvt7VYifomeAfJlMFnYDhow1rk2bufwkbamPEAtQFcL11moLk4PnR7n9vlu7M+BkXAZkHFA0mIcY7tjQFg==",
 | 
					 | 
				
			||||||
          "requires": {
 | 
					 | 
				
			||||||
            "browserslist": "^4.11.0",
 | 
					 | 
				
			||||||
            "caniuse-lite": "^1.0.30001036",
 | 
					 | 
				
			||||||
            "chalk": "^2.4.2",
 | 
					 | 
				
			||||||
            "normalize-range": "^0.1.2",
 | 
					 | 
				
			||||||
            "num2fraction": "^1.2.2",
 | 
					 | 
				
			||||||
            "postcss": "^7.0.27",
 | 
					 | 
				
			||||||
            "postcss-value-parser": "^4.0.3"
 | 
					 | 
				
			||||||
          },
 | 
					 | 
				
			||||||
          "dependencies": {
 | 
					 | 
				
			||||||
            "chalk": {
 | 
					 | 
				
			||||||
              "version": "2.4.2",
 | 
					 | 
				
			||||||
              "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
 | 
					 | 
				
			||||||
              "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
 | 
					 | 
				
			||||||
              "requires": {
 | 
					 | 
				
			||||||
                "ansi-styles": "^3.2.1",
 | 
					 | 
				
			||||||
                "escape-string-regexp": "^1.0.5",
 | 
					 | 
				
			||||||
                "supports-color": "^5.3.0"
 | 
					 | 
				
			||||||
              }
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
          }
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "browserslist": {
 | 
					 | 
				
			||||||
          "version": "4.11.0",
 | 
					 | 
				
			||||||
          "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.11.0.tgz",
 | 
					 | 
				
			||||||
          "integrity": "sha512-WqEC7Yr5wUH5sg6ruR++v2SGOQYpyUdYYd4tZoAq1F7y+QXoLoYGXVbxhtaIqWmAJjtNTRjVD3HuJc1OXTel2A==",
 | 
					 | 
				
			||||||
          "requires": {
 | 
					 | 
				
			||||||
            "caniuse-lite": "^1.0.30001035",
 | 
					 | 
				
			||||||
            "electron-to-chromium": "^1.3.380",
 | 
					 | 
				
			||||||
            "node-releases": "^1.1.52",
 | 
					 | 
				
			||||||
            "pkg-up": "^3.1.0"
 | 
					 | 
				
			||||||
          }
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "caniuse-lite": {
 | 
					 | 
				
			||||||
          "version": "1.0.30001038",
 | 
					 | 
				
			||||||
          "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001038.tgz",
 | 
					 | 
				
			||||||
          "integrity": "sha512-zii9quPo96XfOiRD4TrfYGs+QsGZpb2cGiMAzPjtf/hpFgB6zCPZgJb7I1+EATeMw/o+lG8FyRAnI+CWStHcaQ=="
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "chalk": {
 | 
					 | 
				
			||||||
          "version": "3.0.0",
 | 
					 | 
				
			||||||
          "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
 | 
					 | 
				
			||||||
          "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
 | 
					 | 
				
			||||||
          "requires": {
 | 
					 | 
				
			||||||
            "ansi-styles": "^4.1.0",
 | 
					 | 
				
			||||||
            "supports-color": "^7.1.0"
 | 
					 | 
				
			||||||
          },
 | 
					 | 
				
			||||||
          "dependencies": {
 | 
					 | 
				
			||||||
            "ansi-styles": {
 | 
					 | 
				
			||||||
              "version": "4.2.1",
 | 
					 | 
				
			||||||
              "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
 | 
					 | 
				
			||||||
              "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
 | 
					 | 
				
			||||||
              "requires": {
 | 
					 | 
				
			||||||
                "@types/color-name": "^1.1.1",
 | 
					 | 
				
			||||||
                "color-convert": "^2.0.1"
 | 
					 | 
				
			||||||
              }
 | 
					 | 
				
			||||||
            },
 | 
					 | 
				
			||||||
            "has-flag": {
 | 
					 | 
				
			||||||
              "version": "4.0.0",
 | 
					 | 
				
			||||||
              "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
 | 
					 | 
				
			||||||
              "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
 | 
					 | 
				
			||||||
            },
 | 
					 | 
				
			||||||
            "supports-color": {
 | 
					 | 
				
			||||||
              "version": "7.1.0",
 | 
					 | 
				
			||||||
              "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
 | 
					 | 
				
			||||||
              "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
 | 
					 | 
				
			||||||
              "requires": {
 | 
					 | 
				
			||||||
                "has-flag": "^4.0.0"
 | 
					 | 
				
			||||||
              }
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
          }
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "color-convert": {
 | 
					 | 
				
			||||||
          "version": "2.0.1",
 | 
					 | 
				
			||||||
          "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
 | 
					 | 
				
			||||||
          "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
 | 
					 | 
				
			||||||
          "requires": {
 | 
					 | 
				
			||||||
            "color-name": "~1.1.4"
 | 
					 | 
				
			||||||
          }
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "cssesc": {
 | 
					 | 
				
			||||||
          "version": "3.0.0",
 | 
					 | 
				
			||||||
          "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
 | 
					 | 
				
			||||||
          "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg=="
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "electron-to-chromium": {
 | 
					 | 
				
			||||||
          "version": "1.3.390",
 | 
					 | 
				
			||||||
          "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.390.tgz",
 | 
					 | 
				
			||||||
          "integrity": "sha512-4RvbM5x+002gKI8sltkqWEk5pptn0UnzekUx8RTThAMPDSb8jjpm6SwGiSnEve7f85biyZl8DMXaipaCxDjXag=="
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "fs-extra": {
 | 
					 | 
				
			||||||
          "version": "8.1.0",
 | 
					 | 
				
			||||||
          "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
 | 
					 | 
				
			||||||
          "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
 | 
					 | 
				
			||||||
          "requires": {
 | 
					 | 
				
			||||||
            "graceful-fs": "^4.2.0",
 | 
					 | 
				
			||||||
            "jsonfile": "^4.0.0",
 | 
					 | 
				
			||||||
            "universalify": "^0.1.0"
 | 
					 | 
				
			||||||
          }
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "jsonfile": {
 | 
					 | 
				
			||||||
          "version": "4.0.0",
 | 
					 | 
				
			||||||
          "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
 | 
					 | 
				
			||||||
          "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
 | 
					 | 
				
			||||||
          "requires": {
 | 
					 | 
				
			||||||
            "graceful-fs": "^4.1.6"
 | 
					 | 
				
			||||||
          }
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "node-releases": {
 | 
					 | 
				
			||||||
          "version": "1.1.53",
 | 
					 | 
				
			||||||
          "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.53.tgz",
 | 
					 | 
				
			||||||
          "integrity": "sha512-wp8zyQVwef2hpZ/dJH7SfSrIPD6YoJz6BDQDpGEkcA0s3LpAQoxBIYmfIq6QAhC1DhwsyCgTaTTcONwX8qzCuQ=="
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "postcss": {
 | 
					 | 
				
			||||||
          "version": "7.0.27",
 | 
					 | 
				
			||||||
          "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz",
 | 
					 | 
				
			||||||
          "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==",
 | 
					 | 
				
			||||||
          "requires": {
 | 
					 | 
				
			||||||
            "chalk": "^2.4.2",
 | 
					 | 
				
			||||||
            "source-map": "^0.6.1",
 | 
					 | 
				
			||||||
            "supports-color": "^6.1.0"
 | 
					 | 
				
			||||||
          },
 | 
					 | 
				
			||||||
          "dependencies": {
 | 
					 | 
				
			||||||
            "chalk": {
 | 
					 | 
				
			||||||
              "version": "2.4.2",
 | 
					 | 
				
			||||||
              "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
 | 
					 | 
				
			||||||
              "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
 | 
					 | 
				
			||||||
              "requires": {
 | 
					 | 
				
			||||||
                "ansi-styles": "^3.2.1",
 | 
					 | 
				
			||||||
                "escape-string-regexp": "^1.0.5",
 | 
					 | 
				
			||||||
                "supports-color": "^5.3.0"
 | 
					 | 
				
			||||||
              },
 | 
					 | 
				
			||||||
              "dependencies": {
 | 
					 | 
				
			||||||
                "supports-color": {
 | 
					 | 
				
			||||||
                  "version": "5.5.0",
 | 
					 | 
				
			||||||
                  "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
 | 
					 | 
				
			||||||
                  "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
 | 
					 | 
				
			||||||
                  "requires": {
 | 
					 | 
				
			||||||
                    "has-flag": "^3.0.0"
 | 
					 | 
				
			||||||
                  }
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
              }
 | 
					 | 
				
			||||||
            },
 | 
					 | 
				
			||||||
            "supports-color": {
 | 
					 | 
				
			||||||
              "version": "6.1.0",
 | 
					 | 
				
			||||||
              "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
 | 
					 | 
				
			||||||
              "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
 | 
					 | 
				
			||||||
              "requires": {
 | 
					 | 
				
			||||||
                "has-flag": "^3.0.0"
 | 
					 | 
				
			||||||
              }
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
          }
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "postcss-selector-parser": {
 | 
					 | 
				
			||||||
          "version": "6.0.2",
 | 
					 | 
				
			||||||
          "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz",
 | 
					 | 
				
			||||||
          "integrity": "sha512-36P2QR59jDTOAiIkqEprfJDsoNrvwFei3eCqKd1Y0tUsBimsq39BLp7RD+JWny3WgB1zGhJX8XVePwm9k4wdBg==",
 | 
					 | 
				
			||||||
          "requires": {
 | 
					 | 
				
			||||||
            "cssesc": "^3.0.0",
 | 
					 | 
				
			||||||
            "indexes-of": "^1.0.1",
 | 
					 | 
				
			||||||
            "uniq": "^1.0.1"
 | 
					 | 
				
			||||||
          }
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "postcss-value-parser": {
 | 
					 | 
				
			||||||
          "version": "4.0.3",
 | 
					 | 
				
			||||||
          "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.0.3.tgz",
 | 
					 | 
				
			||||||
          "integrity": "sha512-N7h4pG+Nnu5BEIzyeaaIYWs0LI5XC40OrRh5L60z0QjFsqGWcHcbkBvpe1WYpcIS9yQ8sOi/vIPt1ejQCrMVrg=="
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "reduce-css-calc": {
 | 
					 | 
				
			||||||
          "version": "2.1.7",
 | 
					 | 
				
			||||||
          "resolved": "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-2.1.7.tgz",
 | 
					 | 
				
			||||||
          "integrity": "sha512-fDnlZ+AybAS3C7Q9xDq5y8A2z+lT63zLbynew/lur/IR24OQF5x98tfNwf79mzEdfywZ0a2wpM860FhFfMxZlA==",
 | 
					 | 
				
			||||||
          "requires": {
 | 
					 | 
				
			||||||
            "css-unit-converter": "^1.1.1",
 | 
					 | 
				
			||||||
            "postcss-value-parser": "^3.3.0"
 | 
					 | 
				
			||||||
          },
 | 
					 | 
				
			||||||
          "dependencies": {
 | 
					 | 
				
			||||||
            "postcss-value-parser": {
 | 
					 | 
				
			||||||
              "version": "3.3.1",
 | 
					 | 
				
			||||||
              "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
 | 
					 | 
				
			||||||
              "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ=="
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
          }
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "resolve": {
 | 
					 | 
				
			||||||
          "version": "1.15.1",
 | 
					 | 
				
			||||||
          "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz",
 | 
					 | 
				
			||||||
          "integrity": "sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==",
 | 
					 | 
				
			||||||
          "requires": {
 | 
					 | 
				
			||||||
            "path-parse": "^1.0.6"
 | 
					 | 
				
			||||||
          }
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "source-map": {
 | 
					 | 
				
			||||||
          "version": "0.6.1",
 | 
					 | 
				
			||||||
          "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
 | 
					 | 
				
			||||||
          "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "tapable": {
 | 
					    "tapable": {
 | 
				
			||||||
      "version": "1.1.3",
 | 
					      "version": "1.1.3",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz",
 | 
				
			||||||
@ -13081,7 +12652,8 @@
 | 
				
			|||||||
    "uniq": {
 | 
					    "uniq": {
 | 
				
			||||||
      "version": "1.0.1",
 | 
					      "version": "1.0.1",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz",
 | 
				
			||||||
      "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8="
 | 
					      "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=",
 | 
				
			||||||
 | 
					      "dev": true
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "uniqs": {
 | 
					    "uniqs": {
 | 
				
			||||||
      "version": "2.0.0",
 | 
					      "version": "2.0.0",
 | 
				
			||||||
@ -13110,7 +12682,8 @@
 | 
				
			|||||||
    "universalify": {
 | 
					    "universalify": {
 | 
				
			||||||
      "version": "0.1.2",
 | 
					      "version": "0.1.2",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
 | 
				
			||||||
      "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg=="
 | 
					      "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
 | 
				
			||||||
 | 
					      "dev": true
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "unpipe": {
 | 
					    "unpipe": {
 | 
				
			||||||
      "version": "1.0.0",
 | 
					      "version": "1.0.0",
 | 
				
			||||||
@ -14218,7 +13791,8 @@
 | 
				
			|||||||
    "wrappy": {
 | 
					    "wrappy": {
 | 
				
			||||||
      "version": "1.0.2",
 | 
					      "version": "1.0.2",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
 | 
				
			||||||
      "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
 | 
					      "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
 | 
				
			||||||
 | 
					      "dev": true
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "write": {
 | 
					    "write": {
 | 
				
			||||||
      "version": "0.2.1",
 | 
					      "version": "0.2.1",
 | 
				
			||||||
@ -14232,7 +13806,8 @@
 | 
				
			|||||||
    "xtend": {
 | 
					    "xtend": {
 | 
				
			||||||
      "version": "4.0.2",
 | 
					      "version": "4.0.2",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
 | 
				
			||||||
      "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ=="
 | 
					      "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
 | 
				
			||||||
 | 
					      "dev": true
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "y18n": {
 | 
					    "y18n": {
 | 
				
			||||||
      "version": "3.2.1",
 | 
					      "version": "3.2.1",
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										4
									
								
								public/assets/css/crater.css
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								public/assets/css/crater.css
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							@ -1,4 +1,4 @@
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
    "/assets/js/app.js": "/assets/js/app.js?id=08d4f6357dbe7738effa",
 | 
					    "/assets/js/app.js": "/assets/js/app.js?id=3c9e7bf904dd1bcdf67f",
 | 
				
			||||||
    "/assets/css/crater.css": "/assets/css/crater.css?id=a00ceebbb86dd82a024b"
 | 
					    "/assets/css/crater.css": "/assets/css/crater.css?id=f5a1617422acad8e44a1"
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -63,6 +63,7 @@ Crater is a product of [Bytefury](https://bytefury.com)
 | 
				
			|||||||
**Special thanks to:**
 | 
					**Special thanks to:**
 | 
				
			||||||
* [Birkhoff Lee](https://github.com/BirkhoffLee)
 | 
					* [Birkhoff Lee](https://github.com/BirkhoffLee)
 | 
				
			||||||
* [Hassan A. Ba Abdullah](https://github.com/hsnapps)
 | 
					* [Hassan A. Ba Abdullah](https://github.com/hsnapps)
 | 
				
			||||||
 | 
					* [Akaunting](https://github.com/akaunting/akaunting)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Translate
 | 
					## Translate
 | 
				
			||||||
Help us translate or suggest changes to existing languages if you find any mistakes by creating a new PR. 
 | 
					Help us translate or suggest changes to existing languages if you find any mistakes by creating a new PR. 
 | 
				
			||||||
 | 
				
			|||||||
@ -9,7 +9,7 @@
 | 
				
			|||||||
      :readonly="readOnly"
 | 
					      :readonly="readOnly"
 | 
				
			||||||
      :name="name"
 | 
					      :name="name"
 | 
				
			||||||
      :tabindex="tabIndex"
 | 
					      :tabindex="tabIndex"
 | 
				
			||||||
      :class="[{'input-field-left-icon': icon && isAlignLeftIcon ,'input-field-right-icon': icon && !isAlignLeftIcon ,'invalid': isFieldValid, 'disabled': disabled, 'small-input': small}, inputClass]"
 | 
					      :class="[{ 'input-field-left-icon': icon && isAlignLeftIcon, 'input-field-right-icon': (icon && !isAlignLeftIcon) || isInputGroup, invalid: isFieldValid, disabled: disabled, 'small-input': small}, inputClass]"
 | 
				
			||||||
      :placeholder="placeholder"
 | 
					      :placeholder="placeholder"
 | 
				
			||||||
      :autocomplete="autocomplete"
 | 
					      :autocomplete="autocomplete"
 | 
				
			||||||
      class="input-field"
 | 
					      class="input-field"
 | 
				
			||||||
@ -23,6 +23,9 @@
 | 
				
			|||||||
      <font-awesome-icon :icon="!showPass ?'eye': 'eye-slash'" class="right-icon" />
 | 
					      <font-awesome-icon :icon="!showPass ?'eye': 'eye-slash'" class="right-icon" />
 | 
				
			||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
    <font-awesome-icon v-if="icon && !isAlignLeftIcon" :icon="icon" class="right-icon" />
 | 
					    <font-awesome-icon v-if="icon && !isAlignLeftIcon" :icon="icon" class="right-icon" />
 | 
				
			||||||
 | 
					    <span v-if="isInputGroup" class="right-input-group-text">
 | 
				
			||||||
 | 
					      {{ inputGroupText }}
 | 
				
			||||||
 | 
					    </span>
 | 
				
			||||||
  </div>
 | 
					  </div>
 | 
				
			||||||
</template>
 | 
					</template>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -84,6 +87,14 @@ export default {
 | 
				
			|||||||
    showPassword: {
 | 
					    showPassword: {
 | 
				
			||||||
      type: Boolean,
 | 
					      type: Boolean,
 | 
				
			||||||
      default: false
 | 
					      default: false
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    isInputGroup: {
 | 
				
			||||||
 | 
					      type: Boolean,
 | 
				
			||||||
 | 
					      default: false,
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    inputGroupText: {
 | 
				
			||||||
 | 
					      type: String,
 | 
				
			||||||
 | 
					      default: null,
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  data () {
 | 
					  data () {
 | 
				
			||||||
 | 
				
			|||||||
@ -1,16 +1,16 @@
 | 
				
			|||||||
export default {
 | 
					export default {
 | 
				
			||||||
  toggleSidebar () {
 | 
					  toggleSidebar() {
 | 
				
			||||||
    let icon = document.getElementsByClassName('hamburger')[0]
 | 
					    let icon = document.getElementsByClassName('hamburger')[0]
 | 
				
			||||||
    document.body.classList.toggle('sidebar-open')
 | 
					    document.body.classList.toggle('sidebar-open')
 | 
				
			||||||
    icon.classList.toggle('is-active')
 | 
					    icon.classList.toggle('is-active')
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  addClass (el, className) {
 | 
					  addClass(el, className) {
 | 
				
			||||||
    if (el.classList) el.classList.add(className)
 | 
					    if (el.classList) el.classList.add(className)
 | 
				
			||||||
    else el.className += ' ' + className
 | 
					    else el.className += ' ' + className
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  hasClass (el, className) {
 | 
					  hasClass(el, className) {
 | 
				
			||||||
    const hasClass = el.classList
 | 
					    const hasClass = el.classList
 | 
				
			||||||
      ? el.classList.contains(className)
 | 
					      ? el.classList.contains(className)
 | 
				
			||||||
      : new RegExp('(^| )' + className + '( |$)', 'gi').test(el.className)
 | 
					      : new RegExp('(^| )' + className + '( |$)', 'gi').test(el.className)
 | 
				
			||||||
@ -18,33 +18,38 @@ export default {
 | 
				
			|||||||
    return hasClass
 | 
					    return hasClass
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  reset (prefix) {
 | 
					  reset(prefix) {
 | 
				
			||||||
    let regx = new RegExp('\\b' + prefix + '(.*)?\\b', 'g')
 | 
					    let regx = new RegExp('\\b' + prefix + '(.*)?\\b', 'g')
 | 
				
			||||||
    document.body.className = document.body.className.replace(regx, '')
 | 
					    document.body.className = document.body.className.replace(regx, '')
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  setLayout (layoutName) {
 | 
					  setLayout(layoutName) {
 | 
				
			||||||
    this.reset('layout-')
 | 
					    this.reset('layout-')
 | 
				
			||||||
    document.body.classList.add('layout-' + layoutName)
 | 
					    document.body.classList.add('layout-' + layoutName)
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  setSkin (skinName) {
 | 
					  setSkin(skinName) {
 | 
				
			||||||
    this.reset('skin-')
 | 
					    this.reset('skin-')
 | 
				
			||||||
    document.body.classList.add('skin-' + skinName)
 | 
					    document.body.classList.add('skin-' + skinName)
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  setLogo (logoSrc) {
 | 
					  setLogo(logoSrc) {
 | 
				
			||||||
    document.getElementById('logo-desk').src = logoSrc
 | 
					    document.getElementById('logo-desk').src = logoSrc
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  formatMoney (amount, currency = 0) {
 | 
					  formatMoney(amount, currency = 0) {
 | 
				
			||||||
    if (!currency) {
 | 
					    if (!currency) {
 | 
				
			||||||
      currency = {precision: 2, thousand_separator: ',', decimal_separator: '.', symbol: '$'}
 | 
					      currency = {
 | 
				
			||||||
 | 
					        precision: 2,
 | 
				
			||||||
 | 
					        thousand_separator: ',',
 | 
				
			||||||
 | 
					        decimal_separator: '.',
 | 
				
			||||||
 | 
					        symbol: '$',
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    amount = amount / 100
 | 
					    amount = amount / 100
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    let {precision, decimal_separator, thousand_separator, symbol} = currency
 | 
					    let { precision, decimal_separator, thousand_separator, symbol } = currency
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    try {
 | 
					    try {
 | 
				
			||||||
      precision = Math.abs(precision)
 | 
					      precision = Math.abs(precision)
 | 
				
			||||||
@ -52,25 +57,44 @@ export default {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
      const negativeSign = amount < 0 ? '-' : ''
 | 
					      const negativeSign = amount < 0 ? '-' : ''
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      let i = parseInt(amount = Math.abs(Number(amount) || 0).toFixed(precision)).toString()
 | 
					      let i = parseInt(
 | 
				
			||||||
      let j = (i.length > 3) ? i.length % 3 : 0
 | 
					        (amount = Math.abs(Number(amount) || 0).toFixed(precision))
 | 
				
			||||||
 | 
					      ).toString()
 | 
				
			||||||
 | 
					      let j = i.length > 3 ? i.length % 3 : 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      let moneySymbol = `<span style="font-family: sans-serif">${symbol}</span>`
 | 
					      let moneySymbol = `<span style="font-family: sans-serif">${symbol}</span>`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      return moneySymbol + ' ' + negativeSign + (j ? i.substr(0, j) + thousand_separator : '') + i.substr(j).replace(/(\d{3})(?=\d)/g, '$1' + thousand_separator) + (precision ? decimal_separator + Math.abs(amount - i).toFixed(precision).slice(2) : '')
 | 
					      return (
 | 
				
			||||||
 | 
					        moneySymbol +
 | 
				
			||||||
 | 
					        ' ' +
 | 
				
			||||||
 | 
					        negativeSign +
 | 
				
			||||||
 | 
					        (j ? i.substr(0, j) + thousand_separator : '') +
 | 
				
			||||||
 | 
					        i.substr(j).replace(/(\d{3})(?=\d)/g, '$1' + thousand_separator) +
 | 
				
			||||||
 | 
					        (precision
 | 
				
			||||||
 | 
					          ? decimal_separator +
 | 
				
			||||||
 | 
					            Math.abs(amount - i)
 | 
				
			||||||
 | 
					              .toFixed(precision)
 | 
				
			||||||
 | 
					              .slice(2)
 | 
				
			||||||
 | 
					          : '')
 | 
				
			||||||
 | 
					      )
 | 
				
			||||||
    } catch (e) {
 | 
					    } catch (e) {
 | 
				
			||||||
      console.log(e)
 | 
					      console.log(e)
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  formatGraphMoney (amount, currency = 0) {
 | 
					  formatGraphMoney(amount, currency = 0) {
 | 
				
			||||||
    if (!currency) {
 | 
					    if (!currency) {
 | 
				
			||||||
      currency = {precision: 2, thousand_separator: ',', decimal_separator: '.', symbol: '$'}
 | 
					      currency = {
 | 
				
			||||||
 | 
					        precision: 2,
 | 
				
			||||||
 | 
					        thousand_separator: ',',
 | 
				
			||||||
 | 
					        decimal_separator: '.',
 | 
				
			||||||
 | 
					        symbol: '$',
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    amount = amount / 100
 | 
					    amount = amount / 100
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    let {precision, decimal_separator, thousand_separator, symbol} = currency
 | 
					    let { precision, decimal_separator, thousand_separator, symbol } = currency
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    try {
 | 
					    try {
 | 
				
			||||||
      precision = Math.abs(precision)
 | 
					      precision = Math.abs(precision)
 | 
				
			||||||
@ -78,25 +102,84 @@ export default {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
      const negativeSign = amount < 0 ? '-' : ''
 | 
					      const negativeSign = amount < 0 ? '-' : ''
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      let i = parseInt(amount = Math.abs(Number(amount) || 0).toFixed(precision)).toString()
 | 
					      let i = parseInt(
 | 
				
			||||||
      let j = (i.length > 3) ? i.length % 3 : 0
 | 
					        (amount = Math.abs(Number(amount) || 0).toFixed(precision))
 | 
				
			||||||
 | 
					      ).toString()
 | 
				
			||||||
 | 
					      let j = i.length > 3 ? i.length % 3 : 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      let moneySymbol = `${symbol}`
 | 
					      let moneySymbol = `${symbol}`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      return moneySymbol + ' ' + negativeSign + (j ? i.substr(0, j) + thousand_separator : '') + i.substr(j).replace(/(\d{3})(?=\d)/g, '$1' + thousand_separator) + (precision ? decimal_separator + Math.abs(amount - i).toFixed(precision).slice(2) : '')
 | 
					      return (
 | 
				
			||||||
 | 
					        moneySymbol +
 | 
				
			||||||
 | 
					        ' ' +
 | 
				
			||||||
 | 
					        negativeSign +
 | 
				
			||||||
 | 
					        (j ? i.substr(0, j) + thousand_separator : '') +
 | 
				
			||||||
 | 
					        i.substr(j).replace(/(\d{3})(?=\d)/g, '$1' + thousand_separator) +
 | 
				
			||||||
 | 
					        (precision
 | 
				
			||||||
 | 
					          ? decimal_separator +
 | 
				
			||||||
 | 
					            Math.abs(amount - i)
 | 
				
			||||||
 | 
					              .toFixed(precision)
 | 
				
			||||||
 | 
					              .slice(2)
 | 
				
			||||||
 | 
					          : '')
 | 
				
			||||||
 | 
					      )
 | 
				
			||||||
    } catch (e) {
 | 
					    } catch (e) {
 | 
				
			||||||
      console.log(e)
 | 
					      console.log(e)
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  checkValidUrl (url) {
 | 
					  checkValidUrl(url) {
 | 
				
			||||||
    let pattern = new RegExp('^(https?:\\/\\/)?' + // protocol
 | 
					    if (
 | 
				
			||||||
 | 
					      url.includes('http://localhost') ||
 | 
				
			||||||
 | 
					      url.includes('http://127.0.0.1') ||
 | 
				
			||||||
 | 
					      url.includes('https://localhost') ||
 | 
				
			||||||
 | 
					      url.includes('https://127.0.0.1')
 | 
				
			||||||
 | 
					    ) {
 | 
				
			||||||
 | 
					      return true
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    let pattern = new RegExp(
 | 
				
			||||||
 | 
					      '^(https?:\\/\\/)?' + // protocol
 | 
				
			||||||
      '((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.)+[a-z]{2,}|' + // domain name
 | 
					      '((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.)+[a-z]{2,}|' + // domain name
 | 
				
			||||||
      '((\\d{1,3}\\.){3}\\d{1,3}))' + // OR ip (v4) address
 | 
					      '((\\d{1,3}\\.){3}\\d{1,3}))' + // OR ip (v4) address
 | 
				
			||||||
      '(\\:\\d+)?(\\/[-a-z\\d%_.~+]*)*' + // port and path
 | 
					      '(\\:\\d+)?(\\/[-a-z\\d%_.~+]*)*' + // port and path
 | 
				
			||||||
      '(\\?[;&a-z\\d%_.~+=-]*)?' + // query string
 | 
					      '(\\?[;&a-z\\d%_.~+=-]*)?' + // query string
 | 
				
			||||||
      '(\\#[-a-z\\d_]*)?$', 'i') // fragment locator
 | 
					        '(\\#[-a-z\\d_]*)?$',
 | 
				
			||||||
 | 
					      'i'
 | 
				
			||||||
 | 
					    ) // fragment locator
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return !!pattern.test(url)
 | 
					    return !!pattern.test(url)
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  fallbackCopyTextToClipboard(text) {
 | 
				
			||||||
 | 
					    var textArea = document.createElement('textarea')
 | 
				
			||||||
 | 
					    textArea.value = text
 | 
				
			||||||
 | 
					    // Avoid scrolling to bottom
 | 
				
			||||||
 | 
					    textArea.style.top = '0'
 | 
				
			||||||
 | 
					    textArea.style.left = '0'
 | 
				
			||||||
 | 
					    textArea.style.position = 'fixed'
 | 
				
			||||||
 | 
					    document.body.appendChild(textArea)
 | 
				
			||||||
 | 
					    textArea.focus()
 | 
				
			||||||
 | 
					    textArea.select()
 | 
				
			||||||
 | 
					    try {
 | 
				
			||||||
 | 
					      var successful = document.execCommand('copy')
 | 
				
			||||||
 | 
					      var msg = successful ? 'successful' : 'unsuccessful'
 | 
				
			||||||
 | 
					      console.log('Fallback: Copying text command was ' + msg)
 | 
				
			||||||
 | 
					    } catch (err) {
 | 
				
			||||||
 | 
					      console.error('Fallback: Oops, unable to copy', err)
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					    document.body.removeChild(textArea)
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  copyTextToClipboard(text) {
 | 
				
			||||||
 | 
					    if (!navigator.clipboard) {
 | 
				
			||||||
 | 
					      this.fallbackCopyTextToClipboard(text)
 | 
				
			||||||
 | 
					      return
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    navigator.clipboard.writeText(text).then(
 | 
				
			||||||
 | 
					      function () {
 | 
				
			||||||
 | 
					        return true
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      function (err) {
 | 
				
			||||||
 | 
					        return false
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    )
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -22,6 +22,11 @@
 | 
				
			|||||||
    "to_date": "إلى تاريخ",
 | 
					    "to_date": "إلى تاريخ",
 | 
				
			||||||
    "from": "من",
 | 
					    "from": "من",
 | 
				
			||||||
    "to": "إلى",
 | 
					    "to": "إلى",
 | 
				
			||||||
 | 
					    "sort_by": "ترتيب حسب",
 | 
				
			||||||
 | 
					    "ascending": "تصاعدي",
 | 
				
			||||||
 | 
					    "descending": "تنازلي",
 | 
				
			||||||
 | 
					    "subject": "موضوع",
 | 
				
			||||||
 | 
					    "message": "رسالة",
 | 
				
			||||||
    "go_back": "إلى الخلف",
 | 
					    "go_back": "إلى الخلف",
 | 
				
			||||||
    "back_to_login": "العودة إلى تسجيل الدخول؟",
 | 
					    "back_to_login": "العودة إلى تسجيل الدخول؟",
 | 
				
			||||||
    "home": "الرئيسية",
 | 
					    "home": "الرئيسية",
 | 
				
			||||||
@ -62,14 +67,14 @@
 | 
				
			|||||||
    "four_zero_four": "404",
 | 
					    "four_zero_four": "404",
 | 
				
			||||||
    "you_got_lost": "عفواً! يبدو أنك قد تهت!",
 | 
					    "you_got_lost": "عفواً! يبدو أنك قد تهت!",
 | 
				
			||||||
    "go_home": "عودة إلى الرئيسية",
 | 
					    "go_home": "عودة إلى الرئيسية",
 | 
				
			||||||
 | 
					 | 
				
			||||||
    "setting_updated": "تم تحديث الإعدادات بنجاح",
 | 
					    "setting_updated": "تم تحديث الإعدادات بنجاح",
 | 
				
			||||||
    "select_state": "اختر الولاية/المنطقة",
 | 
					    "select_state": "اختر الولاية/المنطقة",
 | 
				
			||||||
    "select_country": "اختر الدولة",
 | 
					    "select_country": "اختر الدولة",
 | 
				
			||||||
    "select_city": "اختر المدينة",
 | 
					    "select_city": "اختر المدينة",
 | 
				
			||||||
    "street_1": "عنوان الشارع 1",
 | 
					    "street_1": "عنوان الشارع 1",
 | 
				
			||||||
    "street_2": "عنوان الشارع 2",
 | 
					    "street_2": "عنوان الشارع 2",
 | 
				
			||||||
    "action_failed": "فشلت العملية"
 | 
					    "action_failed": "فشلت العملية",
 | 
				
			||||||
 | 
					    "retry": "أعد المحاولة"
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  "dashboard": {
 | 
					  "dashboard": {
 | 
				
			||||||
    "select_year": "اختر السنة",
 | 
					    "select_year": "اختر السنة",
 | 
				
			||||||
@ -112,8 +117,8 @@
 | 
				
			|||||||
  "tax_types": {
 | 
					  "tax_types": {
 | 
				
			||||||
    "name": "الاسم",
 | 
					    "name": "الاسم",
 | 
				
			||||||
    "description": "الوصف",
 | 
					    "description": "الوصف",
 | 
				
			||||||
    "percent": "Percent",
 | 
					    "percent": "نسبه مئويه",
 | 
				
			||||||
    "compound_tax": "Compound Tax"
 | 
					    "compound_tax": "الضريبة المركبة"
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  "customers": {
 | 
					  "customers": {
 | 
				
			||||||
    "title": "العملاء",
 | 
					    "title": "العملاء",
 | 
				
			||||||
@ -155,7 +160,7 @@
 | 
				
			|||||||
    "select_a_customer": "اختر العميل",
 | 
					    "select_a_customer": "اختر العميل",
 | 
				
			||||||
    "type_or_click": "اكتب أو اضغط للاختيار",
 | 
					    "type_or_click": "اكتب أو اضغط للاختيار",
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    "confirm_delete": "لن تكون قادراً على استرجاع هذا العميل | لن تكون قادراً على استرجاع هؤلاء العملاء",
 | 
					    "confirm_delete": "لن تتمكن من استرداد هذا العميل وجميع الفواتير والتقديرات والمدفوعات ذات الصلة. | لن تتمكن من استرداد هؤلاء العملاء وجميع الفواتير والتقديرات والمدفوعات ذات الصلة.",
 | 
				
			||||||
    "created_message": "تم إنشاء العملاء بنجاح",
 | 
					    "created_message": "تم إنشاء العملاء بنجاح",
 | 
				
			||||||
    "updated_message": "تم تحديث العملاء بنجاح",
 | 
					    "updated_message": "تم تحديث العملاء بنجاح",
 | 
				
			||||||
    "deleted_message": "تم حذف العملاء بنجاح | تم حذف العميل بنجاح"
 | 
					    "deleted_message": "تم حذف العملاء بنجاح | تم حذف العميل بنجاح"
 | 
				
			||||||
@ -329,6 +334,9 @@
 | 
				
			|||||||
    "no_matching_invoices": "لا يوجد فواتير مطابقة!",
 | 
					    "no_matching_invoices": "لا يوجد فواتير مطابقة!",
 | 
				
			||||||
    "mark_as_sent_successfully": "تم تحديد الفاتورة كمرسلة بنجاح",
 | 
					    "mark_as_sent_successfully": "تم تحديد الفاتورة كمرسلة بنجاح",
 | 
				
			||||||
    "send_invoice_successfully": "تم إرسال الفاتورة بنجاح",
 | 
					    "send_invoice_successfully": "تم إرسال الفاتورة بنجاح",
 | 
				
			||||||
 | 
					    "cloned_successfully": "تم استنساخ الفاتورة بنجاح",
 | 
				
			||||||
 | 
					    "clone_invoice": "استنساخ الفاتورة",
 | 
				
			||||||
 | 
					    "confirm_clone": "سيتم استنساخ هذه الفاتورة في فاتورة جديدة",
 | 
				
			||||||
    "item": {
 | 
					    "item": {
 | 
				
			||||||
      "title": "اسم الصنف",
 | 
					      "title": "اسم الصنف",
 | 
				
			||||||
      "description": "الوصف",
 | 
					      "description": "الوصف",
 | 
				
			||||||
@ -660,7 +668,29 @@
 | 
				
			|||||||
        "autogenerate_payment_number": "ترقيم آلي للمدفوعات",
 | 
					        "autogenerate_payment_number": "ترقيم آلي للمدفوعات",
 | 
				
			||||||
        "payment_setting_description": "تعطيل الترقيم الآلي ، إذا كنت لا ترغب في إنشاء أرقام الدفعة تلقائيًا في كل مرة تقوم فيها بإنشاء دفعة جديدة.",
 | 
					        "payment_setting_description": "تعطيل الترقيم الآلي ، إذا كنت لا ترغب في إنشاء أرقام الدفعة تلقائيًا في كل مرة تقوم فيها بإنشاء دفعة جديدة.",
 | 
				
			||||||
        "enter_payment_prefix": "أدخل بادئة رقم الدفعة",
 | 
					        "enter_payment_prefix": "أدخل بادئة رقم الدفعة",
 | 
				
			||||||
            "payment_setting_updated": "تم تحديث إعدادات الدفعة بنجاح"
 | 
					        "payment_setting_updated": "تم تحديث إعدادات الدفعة بنجاح",
 | 
				
			||||||
 | 
					        "payment_mode": "طريقة الدفع",
 | 
				
			||||||
 | 
					        "add_payment_mode": "أضف وضع الدفع",
 | 
				
			||||||
 | 
					        "edit_payment_mode": "تحرير وضع الدفع",
 | 
				
			||||||
 | 
					        "mode_name": "اسم الوضع",
 | 
				
			||||||
 | 
					        "payment_mode_added": "تمت إضافة وضع الدفع",
 | 
				
			||||||
 | 
					        "payment_mode_updated": "تم تحديث وضع الدفع",
 | 
				
			||||||
 | 
					        "payment_mode_confirm_delete": "لن تتمكن من استعادة وضع الدفع هذا",
 | 
				
			||||||
 | 
					        "already_in_use": "وضع الدفع قيد الاستخدام بالفعل",
 | 
				
			||||||
 | 
					        "deleted_message": "تم حذف وضع الدفع بنجاح"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      "items": {
 | 
				
			||||||
 | 
					        "title": "العناصر",
 | 
				
			||||||
 | 
					        "units": "الوحدات",
 | 
				
			||||||
 | 
					        "add_item_unit": "إضافة وحدة عنصر",
 | 
				
			||||||
 | 
					        "edit_item_unit": "تحرير وحدة العناصر",
 | 
				
			||||||
 | 
					        "unit_name": "إسم الوحدة",
 | 
				
			||||||
 | 
					        "item_unit_added": "تمت إضافة وحدة العنصر",
 | 
				
			||||||
 | 
					        "item_unit_updated": "تم تحديث وحدة العنصر",
 | 
				
			||||||
 | 
					        "item_unit_confirm_delete": "لن تتمكن من استرداد وحدة العنصر هذه",
 | 
				
			||||||
 | 
					        "already_in_use": "وحدة العنصر قيد الاستخدام بالفعل",
 | 
				
			||||||
 | 
					        "deleted_message": "تم حذف وحدة العنصر بنجاح"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "account_settings": {
 | 
					    "account_settings": {
 | 
				
			||||||
@ -695,6 +725,7 @@
 | 
				
			|||||||
    "tax_types": {
 | 
					    "tax_types": {
 | 
				
			||||||
      "title": "أنواع الضرائب",
 | 
					      "title": "أنواع الضرائب",
 | 
				
			||||||
      "add_tax": "أضف ضريبة",
 | 
					      "add_tax": "أضف ضريبة",
 | 
				
			||||||
 | 
					      "edit_tax": "تحرير الضريبة",
 | 
				
			||||||
      "description": "يمكنك إضافة أو إزالة الضرائب كما يحلو لك. النظام يدعم الضرائب على العناصر الفردية وكذلك على الفاتورة.",
 | 
					      "description": "يمكنك إضافة أو إزالة الضرائب كما يحلو لك. النظام يدعم الضرائب على العناصر الفردية وكذلك على الفاتورة.",
 | 
				
			||||||
      "add_new_tax": "إضافة ضريبة جديدة",
 | 
					      "add_new_tax": "إضافة ضريبة جديدة",
 | 
				
			||||||
      "tax_settings": "إعدادات الضريبة",
 | 
					      "tax_settings": "إعدادات الضريبة",
 | 
				
			||||||
@ -715,6 +746,8 @@
 | 
				
			|||||||
      "action": "إجراء",
 | 
					      "action": "إجراء",
 | 
				
			||||||
      "description": "الفئات مطلوبة لإضافة إدخالات النفقات. يمكنك إضافة أو إزالة هذه الفئات وفقًا لتفضيلاتك.",
 | 
					      "description": "الفئات مطلوبة لإضافة إدخالات النفقات. يمكنك إضافة أو إزالة هذه الفئات وفقًا لتفضيلاتك.",
 | 
				
			||||||
      "add_new_category": "إضافة فئة جديدة",
 | 
					      "add_new_category": "إضافة فئة جديدة",
 | 
				
			||||||
 | 
					      "add_category": "إضافة فئة",
 | 
				
			||||||
 | 
					      "edit_category": "تحرير الفئة",
 | 
				
			||||||
      "category_name": "اسم الفئة",
 | 
					      "category_name": "اسم الفئة",
 | 
				
			||||||
      "category_description": "الوصف",
 | 
					      "category_description": "الوصف",
 | 
				
			||||||
      "created_message": "تم إنشاء نوع النفقات بنجاح",
 | 
					      "created_message": "تم إنشاء نوع النفقات بنجاح",
 | 
				
			||||||
@ -752,7 +785,14 @@
 | 
				
			|||||||
      "progress_text": "سوف يستغرق التحديث بضع دقائق. يرجى عدم تحديث الشاشة أو إغلاق النافذة قبل انتهاء التحديث",
 | 
					      "progress_text": "سوف يستغرق التحديث بضع دقائق. يرجى عدم تحديث الشاشة أو إغلاق النافذة قبل انتهاء التحديث",
 | 
				
			||||||
      "update_success": "تم تحديث النظام! يرجى الانتظار حتى يتم إعادة تحميل نافذة المتصفح تلقائيًا.",
 | 
					      "update_success": "تم تحديث النظام! يرجى الانتظار حتى يتم إعادة تحميل نافذة المتصفح تلقائيًا.",
 | 
				
			||||||
      "latest_message": "لا يوجد تحديثات متوفرة! لديك حالياً أحدث نسخة.",
 | 
					      "latest_message": "لا يوجد تحديثات متوفرة! لديك حالياً أحدث نسخة.",
 | 
				
			||||||
      "current_version": "النسخة الحالية"
 | 
					      "current_version": "النسخة الحالية",
 | 
				
			||||||
 | 
					      "download_zip_file": "تنزيل ملف ZIP",
 | 
				
			||||||
 | 
					      "unzipping_package": "حزمة فك الضغط",
 | 
				
			||||||
 | 
					      "copying_files": "نسخ الملفات",
 | 
				
			||||||
 | 
					      "running_migrations": "إدارة عمليات الترحيل",
 | 
				
			||||||
 | 
					      "finishing_update": "تحديث التشطيب",
 | 
				
			||||||
 | 
					      "update_failed": "فشل التحديث",
 | 
				
			||||||
 | 
					      "update_failed_text": "آسف! فشل التحديث الخاص بك في: {step} خطوة"     
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  "wizard": {
 | 
					  "wizard": {
 | 
				
			||||||
 | 
				
			|||||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@ -13,6 +13,7 @@
 | 
				
			|||||||
  },
 | 
					  },
 | 
				
			||||||
  "general": {
 | 
					  "general": {
 | 
				
			||||||
    "view_pdf": "View PDF",
 | 
					    "view_pdf": "View PDF",
 | 
				
			||||||
 | 
					    "copy_pdf_url": "Copy PDF Url",
 | 
				
			||||||
    "download_pdf": "Download PDF",
 | 
					    "download_pdf": "Download PDF",
 | 
				
			||||||
    "save": "Save",
 | 
					    "save": "Save",
 | 
				
			||||||
    "cancel": "Cancel",
 | 
					    "cancel": "Cancel",
 | 
				
			||||||
@ -70,14 +71,14 @@
 | 
				
			|||||||
    "go_home": "Go Home",
 | 
					    "go_home": "Go Home",
 | 
				
			||||||
    "test_mail_conf": "Test Mail Configuration",
 | 
					    "test_mail_conf": "Test Mail Configuration",
 | 
				
			||||||
    "send_mail_successfully": "Mail sent successfully",
 | 
					    "send_mail_successfully": "Mail sent successfully",
 | 
				
			||||||
 | 
					 | 
				
			||||||
    "setting_updated": "Setting updated successfully",
 | 
					    "setting_updated": "Setting updated successfully",
 | 
				
			||||||
    "select_state": "Select state",
 | 
					    "select_state": "Select state",
 | 
				
			||||||
    "select_country": "Select Country",
 | 
					    "select_country": "Select Country",
 | 
				
			||||||
    "select_city": "Select City",
 | 
					    "select_city": "Select City",
 | 
				
			||||||
    "street_1": "Street 1",
 | 
					    "street_1": "Street 1",
 | 
				
			||||||
    "street_2": "Street 2",
 | 
					    "street_2": "Street 2",
 | 
				
			||||||
    "action_failed": "Action Failed"
 | 
					    "action_failed": "Action Failed",
 | 
				
			||||||
 | 
					    "retry": "Retry"
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  "dashboard": {
 | 
					  "dashboard": {
 | 
				
			||||||
    "select_year": "Select year",
 | 
					    "select_year": "Select year",
 | 
				
			||||||
@ -163,7 +164,7 @@
 | 
				
			|||||||
    "select_a_customer": "Select a customer",
 | 
					    "select_a_customer": "Select a customer",
 | 
				
			||||||
    "type_or_click": "Type or click to select",
 | 
					    "type_or_click": "Type or click to select",
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    "confirm_delete": "You will not be able to recover this Customer | You will not be able to recover these Customers",
 | 
					    "confirm_delete": "You will not be able to recover this customer and all the related Invoices, Estimates and Payments. | You will not be able to recover these customers and all the related Invoices, Estimates and Payments.",
 | 
				
			||||||
    "created_message": "Customer created successfully",
 | 
					    "created_message": "Customer created successfully",
 | 
				
			||||||
    "updated_message": "Customer updated successfully",
 | 
					    "updated_message": "Customer updated successfully",
 | 
				
			||||||
    "deleted_message": "Customer deleted successfully | Customers deleted successfully"
 | 
					    "deleted_message": "Customer deleted successfully | Customers deleted successfully"
 | 
				
			||||||
@ -230,6 +231,7 @@
 | 
				
			|||||||
    "convert_to_invoice": "Convert to Invoice",
 | 
					    "convert_to_invoice": "Convert to Invoice",
 | 
				
			||||||
    "mark_as_sent": "Mark as Sent",
 | 
					    "mark_as_sent": "Mark as Sent",
 | 
				
			||||||
    "send_estimate": "Send Estimate",
 | 
					    "send_estimate": "Send Estimate",
 | 
				
			||||||
 | 
					    "resend_estimate": "Resend Estimate",
 | 
				
			||||||
    "record_payment": "Record Payment",
 | 
					    "record_payment": "Record Payment",
 | 
				
			||||||
    "add_estimate": "Add Estimate",
 | 
					    "add_estimate": "Add Estimate",
 | 
				
			||||||
    "save_estimate": "Save Estimate",
 | 
					    "save_estimate": "Save Estimate",
 | 
				
			||||||
@ -316,6 +318,7 @@
 | 
				
			|||||||
    "notes": "Notes",
 | 
					    "notes": "Notes",
 | 
				
			||||||
    "view": "View",
 | 
					    "view": "View",
 | 
				
			||||||
    "send_invoice": "Send Invoice",
 | 
					    "send_invoice": "Send Invoice",
 | 
				
			||||||
 | 
					    "resend_invoice": "Resend Invoice",
 | 
				
			||||||
    "invoice_template": "Invoice Template",
 | 
					    "invoice_template": "Invoice Template",
 | 
				
			||||||
    "template": "Template",
 | 
					    "template": "Template",
 | 
				
			||||||
    "mark_as_sent": "Mark as sent",
 | 
					    "mark_as_sent": "Mark as sent",
 | 
				
			||||||
@ -678,10 +681,11 @@
 | 
				
			|||||||
        "payment_setting_updated": "Payment Setting updated successfully",
 | 
					        "payment_setting_updated": "Payment Setting updated successfully",
 | 
				
			||||||
        "payment_mode": "Payment Mode",
 | 
					        "payment_mode": "Payment Mode",
 | 
				
			||||||
        "add_payment_mode": "Add Payment Mode",
 | 
					        "add_payment_mode": "Add Payment Mode",
 | 
				
			||||||
 | 
					        "edit_payment_mode": "Edit Payment Mode",
 | 
				
			||||||
        "mode_name": "Mode Name",
 | 
					        "mode_name": "Mode Name",
 | 
				
			||||||
        "payment_mode_added": "Payment Mode Added",
 | 
					        "payment_mode_added": "Payment Mode Added",
 | 
				
			||||||
        "payment_mode_updated": "Payment Mode Updated",
 | 
					        "payment_mode_updated": "Payment Mode Updated",
 | 
				
			||||||
            "payment_mode_confirm_delete":"You will not be able to recover this Payment Mode",
 | 
					        "payment_mode_confirm_delete": "You will not be able to recover this Payment Mode",
 | 
				
			||||||
        "already_in_use": "Payment Mode is already in use",
 | 
					        "already_in_use": "Payment Mode is already in use",
 | 
				
			||||||
        "deleted_message": "Payment Mode deleted successfully"
 | 
					        "deleted_message": "Payment Mode deleted successfully"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
@ -690,10 +694,11 @@
 | 
				
			|||||||
        "title": "Items",
 | 
					        "title": "Items",
 | 
				
			||||||
        "units": "units",
 | 
					        "units": "units",
 | 
				
			||||||
        "add_item_unit": "Add Item Unit",
 | 
					        "add_item_unit": "Add Item Unit",
 | 
				
			||||||
 | 
					        "edit_item_unit": "Edit Item Unit",
 | 
				
			||||||
        "unit_name": "Unit Name",
 | 
					        "unit_name": "Unit Name",
 | 
				
			||||||
        "item_unit_added": "Item Unit Added",
 | 
					        "item_unit_added": "Item Unit Added",
 | 
				
			||||||
        "item_unit_updated": "Item Unit Updated",
 | 
					        "item_unit_updated": "Item Unit Updated",
 | 
				
			||||||
            "item_unit_confirm_delete":"You will not be able to recover this Item unit",
 | 
					        "item_unit_confirm_delete": "You will not be able to recover this Item unit",
 | 
				
			||||||
        "already_in_use": "Item Unit is already in use",
 | 
					        "already_in_use": "Item Unit is already in use",
 | 
				
			||||||
        "deleted_message": "Item Unit deleted successfully"
 | 
					        "deleted_message": "Item Unit deleted successfully"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
@ -730,6 +735,7 @@
 | 
				
			|||||||
    "tax_types": {
 | 
					    "tax_types": {
 | 
				
			||||||
      "title": "Tax Types",
 | 
					      "title": "Tax Types",
 | 
				
			||||||
      "add_tax": "Add Tax",
 | 
					      "add_tax": "Add Tax",
 | 
				
			||||||
 | 
					      "edit_tax": "Edit Tax",
 | 
				
			||||||
      "description": "You can add or Remove Taxes as you please. Crater supports Taxes on Individual Items as well as on the invoice.",
 | 
					      "description": "You can add or Remove Taxes as you please. Crater supports Taxes on Individual Items as well as on the invoice.",
 | 
				
			||||||
      "add_new_tax": "Add New Tax",
 | 
					      "add_new_tax": "Add New Tax",
 | 
				
			||||||
      "tax_settings": "Tax Settings",
 | 
					      "tax_settings": "Tax Settings",
 | 
				
			||||||
@ -750,6 +756,8 @@
 | 
				
			|||||||
      "action": "Action",
 | 
					      "action": "Action",
 | 
				
			||||||
      "description": "Categories are required for adding expense entries. You can Add or Remove these categories according to your preference.",
 | 
					      "description": "Categories are required for adding expense entries. You can Add or Remove these categories according to your preference.",
 | 
				
			||||||
      "add_new_category": "Add New Category",
 | 
					      "add_new_category": "Add New Category",
 | 
				
			||||||
 | 
					      "add_category": "Add Category",
 | 
				
			||||||
 | 
					      "edit_category": "Edit Category",
 | 
				
			||||||
      "category_name": "Category Name",
 | 
					      "category_name": "Category Name",
 | 
				
			||||||
      "category_description": "Description",
 | 
					      "category_description": "Description",
 | 
				
			||||||
      "created_message": "Expense Category created successfully",
 | 
					      "created_message": "Expense Category created successfully",
 | 
				
			||||||
@ -787,7 +795,14 @@
 | 
				
			|||||||
      "progress_text": "It will just take a few minutes. Please do not refresh the screen or close the window before the update finishes",
 | 
					      "progress_text": "It will just take a few minutes. Please do not refresh the screen or close the window before the update finishes",
 | 
				
			||||||
      "update_success": "App has been updated! Please wait while your browser window gets reloaded automatically.",
 | 
					      "update_success": "App has been updated! Please wait while your browser window gets reloaded automatically.",
 | 
				
			||||||
      "latest_message": "No update available! You are on the latest version.",
 | 
					      "latest_message": "No update available! You are on the latest version.",
 | 
				
			||||||
      "current_version": "Current Version"
 | 
					      "current_version": "Current Version",
 | 
				
			||||||
 | 
					      "download_zip_file": "Download ZIP file",
 | 
				
			||||||
 | 
					      "unzipping_package": "Unzipping Package",
 | 
				
			||||||
 | 
					      "copying_files": "Copying Files",
 | 
				
			||||||
 | 
					      "running_migrations": "Running Migrations",
 | 
				
			||||||
 | 
					      "finishing_update": "Finishing Update",
 | 
				
			||||||
 | 
					      "update_failed": "Update Failed",
 | 
				
			||||||
 | 
					      "update_failed_text": "Sorry! Your update failed on : {step} step"   
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  "wizard": {
 | 
					  "wizard": {
 | 
				
			||||||
 | 
				
			|||||||
@ -22,6 +22,11 @@
 | 
				
			|||||||
    "to_date": "Hasta la fecha",
 | 
					    "to_date": "Hasta la fecha",
 | 
				
			||||||
    "from": "De",
 | 
					    "from": "De",
 | 
				
			||||||
    "to": "A",
 | 
					    "to": "A",
 | 
				
			||||||
 | 
					    "sort_by": "Ordenar por",
 | 
				
			||||||
 | 
					    "ascending": "Ascendente",
 | 
				
			||||||
 | 
					    "descending": "Descendente",
 | 
				
			||||||
 | 
					    "subject": "Sujeta",
 | 
				
			||||||
 | 
					    "message": "Mensaje",
 | 
				
			||||||
    "go_back": "Volver",
 | 
					    "go_back": "Volver",
 | 
				
			||||||
    "back_to_login": "¿Volver al inicio de sesión?",
 | 
					    "back_to_login": "¿Volver al inicio de sesión?",
 | 
				
			||||||
    "home": "Inicio",
 | 
					    "home": "Inicio",
 | 
				
			||||||
@ -62,14 +67,16 @@
 | 
				
			|||||||
    "four_zero_four": "404",
 | 
					    "four_zero_four": "404",
 | 
				
			||||||
    "you_got_lost": "Whoops! ¡Te perdiste!",
 | 
					    "you_got_lost": "Whoops! ¡Te perdiste!",
 | 
				
			||||||
    "go_home": "Volver al Inicio",
 | 
					    "go_home": "Volver al Inicio",
 | 
				
			||||||
 | 
					    "test_mail_conf": "Probar configuración de correo",
 | 
				
			||||||
 | 
					    "send_mail_successfully": "El correo enviado con éxito",
 | 
				
			||||||
    "setting_updated": "Configuración actualizada con éxito",
 | 
					    "setting_updated": "Configuración actualizada con éxito",
 | 
				
			||||||
    "select_state": "Seleccionar estado",
 | 
					    "select_state": "Seleccionar estado",
 | 
				
			||||||
    "select_country": "Seleccionar país",
 | 
					    "select_country": "Seleccionar país",
 | 
				
			||||||
    "select_city": "Seleccionar ciudad",
 | 
					    "select_city": "Seleccionar ciudad",
 | 
				
			||||||
    "street_1": "Calle 1",
 | 
					    "street_1": "Calle 1",
 | 
				
			||||||
    "street_2": "Calle 2",
 | 
					    "street_2": "Calle 2",
 | 
				
			||||||
    "action_failed": "Accion Fallida"
 | 
					    "action_failed": "Accion Fallida",
 | 
				
			||||||
 | 
					    "retry": "Procesar de nuevo"
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  "dashboard": {
 | 
					  "dashboard": {
 | 
				
			||||||
    "select_year": "Seleccionar año",
 | 
					    "select_year": "Seleccionar año",
 | 
				
			||||||
@ -155,7 +162,7 @@
 | 
				
			|||||||
    "select_a_customer": "Selecciona un cliente",
 | 
					    "select_a_customer": "Selecciona un cliente",
 | 
				
			||||||
    "type_or_click": "Escriba o haga clic para seleccionar",
 | 
					    "type_or_click": "Escriba o haga clic para seleccionar",
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    "confirm_delete": "No podrá recuperar este cliente | No podrá recuperar estos clientes",
 | 
					    "confirm_delete": "No podrá recuperar este cliente y todas las facturas, estimaciones y pagos relacionados. | No podrá recuperar estos clientes y todas las facturas, estimaciones y pagos relacionados.",
 | 
				
			||||||
    "created_message": "Cliente creado con éxito",
 | 
					    "created_message": "Cliente creado con éxito",
 | 
				
			||||||
    "updated_message": "Cliente actualizado con éxito",
 | 
					    "updated_message": "Cliente actualizado con éxito",
 | 
				
			||||||
    "deleted_message": "Cliente eliminado correctamente | Clientes eliminados exitosamente"
 | 
					    "deleted_message": "Cliente eliminado correctamente | Clientes eliminados exitosamente"
 | 
				
			||||||
@ -180,7 +187,7 @@
 | 
				
			|||||||
    "no_items": "¡Aún no hay artículos!",
 | 
					    "no_items": "¡Aún no hay artículos!",
 | 
				
			||||||
    "list_of_items": "Esta sección contendrá la lista de artículos.",
 | 
					    "list_of_items": "Esta sección contendrá la lista de artículos.",
 | 
				
			||||||
    "select_a_unit": "seleccionar unidad",
 | 
					    "select_a_unit": "seleccionar unidad",
 | 
				
			||||||
 | 
					    "taxes": "Impuestos",
 | 
				
			||||||
    "item_attached_message": "No se puede eliminar un elemento que ya está en uso.",
 | 
					    "item_attached_message": "No se puede eliminar un elemento que ya está en uso.",
 | 
				
			||||||
    "confirm_delete": "No podrá recuperar este artículo | No podrás recuperar estos elementos",
 | 
					    "confirm_delete": "No podrá recuperar este artículo | No podrás recuperar estos elementos",
 | 
				
			||||||
    "created_message": "Artículo creado con éxito",
 | 
					    "created_message": "Artículo creado con éxito",
 | 
				
			||||||
@ -329,6 +336,9 @@
 | 
				
			|||||||
    "no_matching_invoices": "¡No hay facturas coincidentes con la selección!",
 | 
					    "no_matching_invoices": "¡No hay facturas coincidentes con la selección!",
 | 
				
			||||||
    "mark_as_sent_successfully": "Factura marcada como enviada con éxito",
 | 
					    "mark_as_sent_successfully": "Factura marcada como enviada con éxito",
 | 
				
			||||||
    "send_invoice_successfully": "Factura enviada exitosamente",
 | 
					    "send_invoice_successfully": "Factura enviada exitosamente",
 | 
				
			||||||
 | 
					    "cloned_successfully": "Factura clonada exitosamente",
 | 
				
			||||||
 | 
					    "clone_invoice": "Factura de clonación",
 | 
				
			||||||
 | 
					    "confirm_clone": "Esta factura se clonará en una nueva factura.",
 | 
				
			||||||
    "item": {
 | 
					    "item": {
 | 
				
			||||||
      "title": "Título del artículo",
 | 
					      "title": "Título del artículo",
 | 
				
			||||||
      "description": "Descripción",
 | 
					      "description": "Descripción",
 | 
				
			||||||
@ -393,6 +403,7 @@
 | 
				
			|||||||
    "edit_payment": "Editar pago",
 | 
					    "edit_payment": "Editar pago",
 | 
				
			||||||
    "view_payment": "Ver pago",
 | 
					    "view_payment": "Ver pago",
 | 
				
			||||||
    "add_new_payment": "Agregar nuevo pago",
 | 
					    "add_new_payment": "Agregar nuevo pago",
 | 
				
			||||||
 | 
					    "send_payment_receipt": "Enviar recibo de pago",
 | 
				
			||||||
    "save_payment": "Guardar pago",
 | 
					    "save_payment": "Guardar pago",
 | 
				
			||||||
    "update_payment": "Actualizar pago",
 | 
					    "update_payment": "Actualizar pago",
 | 
				
			||||||
    "payment": "Pago | Pagos",
 | 
					    "payment": "Pago | Pagos",
 | 
				
			||||||
@ -653,13 +664,35 @@
 | 
				
			|||||||
      },
 | 
					      },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      "payments": {
 | 
					      "payments": {
 | 
				
			||||||
            "title": "Payments",
 | 
					        "title": "Pagos",
 | 
				
			||||||
        "payment_prefix": "Prefijo de los pagos",
 | 
					        "payment_prefix": "Prefijo de los pagos",
 | 
				
			||||||
        "payment_settings": "Ajustes de pagos",
 | 
					        "payment_settings": "Ajustes de pagos",
 | 
				
			||||||
        "autogenerate_payment_number": "Autogenerar número de pago",
 | 
					        "autogenerate_payment_number": "Autogenerar número de pago",
 | 
				
			||||||
        "payment_setting_description": "Desactive esto, si no desea generar automáticamente números de pago cada vez que cree un nuevo pago.",
 | 
					        "payment_setting_description": "Desactive esto, si no desea generar automáticamente números de pago cada vez que cree un nuevo pago.",
 | 
				
			||||||
        "enter_payment_prefix": "Introduzca el prefijo de pago",
 | 
					        "enter_payment_prefix": "Introduzca el prefijo de pago",
 | 
				
			||||||
            "payment_setting_updated": "Configuración de pagos actualizada correctamente"
 | 
					        "payment_setting_updated": "Configuración de pagos actualizada correctamente",
 | 
				
			||||||
 | 
					        "payment_mode": "Modo de pago",
 | 
				
			||||||
 | 
					        "add_payment_mode": "Agregar modo de pago",
 | 
				
			||||||
 | 
					        "edit_payment_mode": "Editar modo de pago",
 | 
				
			||||||
 | 
					        "mode_name": "Nombre del modo",
 | 
				
			||||||
 | 
					        "payment_mode_added": "Modo de pago agregado",
 | 
				
			||||||
 | 
					        "payment_mode_updated": "Modo de pago actualizado",
 | 
				
			||||||
 | 
					        "payment_mode_confirm_delete": "No podrá recuperar este modo de pago",
 | 
				
			||||||
 | 
					        "already_in_use": "El modo de pago ya está en uso",
 | 
				
			||||||
 | 
					        "deleted_message": "Modo de pago eliminado correctamente"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      "items": {
 | 
				
			||||||
 | 
					        "title": "Artículos",
 | 
				
			||||||
 | 
					        "units": "unidades",
 | 
				
			||||||
 | 
					        "add_item_unit": "Agregar unidad de artículo",
 | 
				
			||||||
 | 
					        "edit_item_unit": "Editar unidad de artículo",
 | 
				
			||||||
 | 
					        "unit_name": "Nombre de la unidad",
 | 
				
			||||||
 | 
					        "item_unit_added": "Unidad de artículo agregada",
 | 
				
			||||||
 | 
					        "item_unit_updated": "Unidad de artículo actualizada",
 | 
				
			||||||
 | 
					        "item_unit_confirm_delete": "No podrás recuperar esta unidad de artículo",
 | 
				
			||||||
 | 
					        "already_in_use": "Unidad de artículo ya está en uso",
 | 
				
			||||||
 | 
					        "deleted_message": "Unidad de elemento eliminada correctamente"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "account_settings": {
 | 
					    "account_settings": {
 | 
				
			||||||
@ -694,6 +727,7 @@
 | 
				
			|||||||
    "tax_types": {
 | 
					    "tax_types": {
 | 
				
			||||||
      "title": "Tipos de impuestos",
 | 
					      "title": "Tipos de impuestos",
 | 
				
			||||||
      "add_tax": "Agregar impuesto",
 | 
					      "add_tax": "Agregar impuesto",
 | 
				
			||||||
 | 
					      "edit_tax": "Editar impuesto",
 | 
				
			||||||
      "description": "Puede agregar o eliminar impuestos a su gusto. Crater admite impuestos sobre artículos individuales, así como sobre la factura.",
 | 
					      "description": "Puede agregar o eliminar impuestos a su gusto. Crater admite impuestos sobre artículos individuales, así como sobre la factura.",
 | 
				
			||||||
      "add_new_tax": "Agregar nuevo impuesto",
 | 
					      "add_new_tax": "Agregar nuevo impuesto",
 | 
				
			||||||
      "tax_settings": "Configuraciones de impuestos",
 | 
					      "tax_settings": "Configuraciones de impuestos",
 | 
				
			||||||
@ -714,6 +748,8 @@
 | 
				
			|||||||
      "action": "Acción",
 | 
					      "action": "Acción",
 | 
				
			||||||
      "description": "Se requieren categorías para agregar entradas de gastos. Puede Agregar o Eliminar estas categorías según su preferencia.",
 | 
					      "description": "Se requieren categorías para agregar entradas de gastos. Puede Agregar o Eliminar estas categorías según su preferencia.",
 | 
				
			||||||
      "add_new_category": "Añadir nueva categoria",
 | 
					      "add_new_category": "Añadir nueva categoria",
 | 
				
			||||||
 | 
					      "add_category": "Añadir categoría",
 | 
				
			||||||
 | 
					      "edit_category": "Editar categoria",
 | 
				
			||||||
      "category_name": "nombre de la categoría",
 | 
					      "category_name": "nombre de la categoría",
 | 
				
			||||||
      "category_description": "Descripción",
 | 
					      "category_description": "Descripción",
 | 
				
			||||||
      "created_message": "Categoría de gastos creada con éxito",
 | 
					      "created_message": "Categoría de gastos creada con éxito",
 | 
				
			||||||
@ -751,7 +787,14 @@
 | 
				
			|||||||
      "progress_text": "Solo tomará unos minutos. No actualice la pantalla ni cierre la ventana antes de que finalice la actualización.",
 | 
					      "progress_text": "Solo tomará unos minutos. No actualice la pantalla ni cierre la ventana antes de que finalice la actualización.",
 | 
				
			||||||
      "update_success": "¡La aplicación ha sido actualizada! Espere mientras la ventana de su navegador se vuelve a cargar automáticamente.",
 | 
					      "update_success": "¡La aplicación ha sido actualizada! Espere mientras la ventana de su navegador se vuelve a cargar automáticamente.",
 | 
				
			||||||
      "latest_message": "¡Actualización no disponible! Estás en la última versión.",
 | 
					      "latest_message": "¡Actualización no disponible! Estás en la última versión.",
 | 
				
			||||||
      "current_version": "Versión actual"
 | 
					      "current_version": "Versión actual",
 | 
				
			||||||
 | 
					      "download_zip_file": "Descargar archivo ZIP",
 | 
				
			||||||
 | 
					      "unzipping_package": "Descomprimir paquete",
 | 
				
			||||||
 | 
					      "copying_files": "Copiando documentos",
 | 
				
			||||||
 | 
					      "running_migrations": "Ejecutar migraciones",
 | 
				
			||||||
 | 
					      "finishing_update": "Actualización final",
 | 
				
			||||||
 | 
					      "update_failed": "Actualización fallida",
 | 
				
			||||||
 | 
					      "update_failed_text": "¡Lo siento! Su actualización falló el: {step} paso" 
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  "wizard": {
 | 
					  "wizard": {
 | 
				
			||||||
 | 
				
			|||||||
@ -17,6 +17,7 @@
 | 
				
			|||||||
    "save": "Sauvegarder",
 | 
					    "save": "Sauvegarder",
 | 
				
			||||||
    "cancel": "Annuler",
 | 
					    "cancel": "Annuler",
 | 
				
			||||||
    "update": "Mise à jour",
 | 
					    "update": "Mise à jour",
 | 
				
			||||||
 | 
					    "deselect": "Retirer",
 | 
				
			||||||
    "download": "Télécharger",
 | 
					    "download": "Télécharger",
 | 
				
			||||||
    "from_date": "A partir de la date",
 | 
					    "from_date": "A partir de la date",
 | 
				
			||||||
    "to_date": "À ce jour",
 | 
					    "to_date": "À ce jour",
 | 
				
			||||||
@ -28,7 +29,7 @@
 | 
				
			|||||||
    "filter": "Filtre",
 | 
					    "filter": "Filtre",
 | 
				
			||||||
    "delete": "Effacer",
 | 
					    "delete": "Effacer",
 | 
				
			||||||
    "edit": "Modifier",
 | 
					    "edit": "Modifier",
 | 
				
			||||||
    "view": "Vue",
 | 
					    "view": "Voir",
 | 
				
			||||||
    "add_new_item": "Ajoute un nouvel objet",
 | 
					    "add_new_item": "Ajoute un nouvel objet",
 | 
				
			||||||
    "clear_all": "Tout effacer",
 | 
					    "clear_all": "Tout effacer",
 | 
				
			||||||
    "showing": "Montrant",
 | 
					    "showing": "Montrant",
 | 
				
			||||||
@ -62,14 +63,21 @@
 | 
				
			|||||||
    "four_zero_four": "404",
 | 
					    "four_zero_four": "404",
 | 
				
			||||||
    "you_got_lost": "Oups! Vous vous êtes perdus!",
 | 
					    "you_got_lost": "Oups! Vous vous êtes perdus!",
 | 
				
			||||||
    "go_home": "Rentrer chez soi",
 | 
					    "go_home": "Rentrer chez soi",
 | 
				
			||||||
 | 
					    "test_mail_conf": "Tester la configuration",
 | 
				
			||||||
 | 
					    "send_mail_successfully": "Mail envoyé avec succès",
 | 
				
			||||||
    "setting_updated": "Réglage mis à jour avec succès",
 | 
					    "setting_updated": "Réglage mis à jour avec succès",
 | 
				
			||||||
    "select_state": "Sélectionnez l'état",
 | 
					    "select_state": "Sélectionnez l'état",
 | 
				
			||||||
    "select_country": "Choisissez le pays",
 | 
					    "select_country": "Choisissez le pays",
 | 
				
			||||||
    "select_city": "Sélectionnez une ville",
 | 
					    "select_city": "Sélectionnez une ville",
 | 
				
			||||||
    "street_1": "Rue 1",
 | 
					    "street_1": "Rue 1",
 | 
				
			||||||
    "street_2": "Rue # 2",
 | 
					    "street_2": "Rue # 2",
 | 
				
			||||||
    "action_failed": "Action : échoué"
 | 
					    "action_failed": "Action : échoué",
 | 
				
			||||||
 | 
					    "sort_by": "Trier par",
 | 
				
			||||||
 | 
					    "ascending": "Ascendant",
 | 
				
			||||||
 | 
					    "descending": "Descendant",
 | 
				
			||||||
 | 
					    "subject": "matière",
 | 
				
			||||||
 | 
					    "message": "Message",
 | 
				
			||||||
 | 
					    "retry": "Réessayez"
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  "dashboard": {
 | 
					  "dashboard": {
 | 
				
			||||||
    "select_year": "Sélectionnez l'année",
 | 
					    "select_year": "Sélectionnez l'année",
 | 
				
			||||||
@ -160,7 +168,7 @@
 | 
				
			|||||||
    "select_a_customer": "Sélectionnez un client",
 | 
					    "select_a_customer": "Sélectionnez un client",
 | 
				
			||||||
    "type_or_click": "Tapez ou cliquez pour sélectionner",
 | 
					    "type_or_click": "Tapez ou cliquez pour sélectionner",
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    "confirm_delete": "Vous ne pourrez pas récupérer ce client | Vous ne pourrez pas récupérer ces clients",
 | 
					    "confirm_delete": "Vous ne pourrez pas récupérer ce client et toutes les factures, devis et paiements associés. | Vous ne serez pas en mesure de récupérer ces clients et toutes les factures, devis et paiements associés.",
 | 
				
			||||||
    "created_message": "Client créé avec succès",
 | 
					    "created_message": "Client créé avec succès",
 | 
				
			||||||
    "updated_message": "Client mis à jour avec succès",
 | 
					    "updated_message": "Client mis à jour avec succès",
 | 
				
			||||||
    "deleted_message": "Client supprimé avec succès | Les clients supprimés avec succès"
 | 
					    "deleted_message": "Client supprimé avec succès | Les clients supprimés avec succès"
 | 
				
			||||||
@ -185,7 +193,7 @@
 | 
				
			|||||||
    "no_items": "Aucun article pour le moment!",
 | 
					    "no_items": "Aucun article pour le moment!",
 | 
				
			||||||
    "list_of_items": "Cette section contiendra la liste des éléments.",
 | 
					    "list_of_items": "Cette section contiendra la liste des éléments.",
 | 
				
			||||||
    "select_a_unit": "Sélectionnez l'unité",
 | 
					    "select_a_unit": "Sélectionnez l'unité",
 | 
				
			||||||
 | 
					    "taxes": "Les taxes",
 | 
				
			||||||
    "item_attached_message": "Impossible de supprimer un élément déjà utilisé",
 | 
					    "item_attached_message": "Impossible de supprimer un élément déjà utilisé",
 | 
				
			||||||
    "confirm_delete": "Vous ne pourrez pas récupérer cet article | Vous ne pourrez pas récupérer ces objets",
 | 
					    "confirm_delete": "Vous ne pourrez pas récupérer cet article | Vous ne pourrez pas récupérer ces objets",
 | 
				
			||||||
    "created_message": "Article créé avec succès",
 | 
					    "created_message": "Article créé avec succès",
 | 
				
			||||||
@ -202,24 +210,24 @@
 | 
				
			|||||||
    "all": "Tout",
 | 
					    "all": "Tout",
 | 
				
			||||||
    "paid": "Payé",
 | 
					    "paid": "Payé",
 | 
				
			||||||
    "unpaid": "Non payé",
 | 
					    "unpaid": "Non payé",
 | 
				
			||||||
    "customer": "CLIENT CLIENT",
 | 
					    "customer": "Client",
 | 
				
			||||||
    "ref_no": "REF NO.",
 | 
					    "ref_no": "Réf.",
 | 
				
			||||||
    "number": "NOMBRE",
 | 
					    "number": "N°",
 | 
				
			||||||
    "amount_due": "MONTANT DÛ",
 | 
					    "amount_due": "MONTANT DÛ",
 | 
				
			||||||
    "partially_paid": "Partiellement payé",
 | 
					    "partially_paid": "Partiellement payé",
 | 
				
			||||||
    "total": "Totale",
 | 
					    "total": "Total",
 | 
				
			||||||
    "discount": "Remise",
 | 
					    "discount": "Remise",
 | 
				
			||||||
    "sub_total": "Total partiel",
 | 
					    "sub_total": "Total partiel",
 | 
				
			||||||
    "estimate_number": "Numéro destimation",
 | 
					    "estimate_number": "N°",
 | 
				
			||||||
    "ref_number": "Numéro de ref",
 | 
					    "ref_number": "Numéro de ref",
 | 
				
			||||||
    "contact": "Contact",
 | 
					    "contact": "Contact",
 | 
				
			||||||
    "add_item": "Ajouter un article",
 | 
					    "add_item": "Ajouter un article",
 | 
				
			||||||
    "date": "Date",
 | 
					    "date": "Date",
 | 
				
			||||||
    "due_date": "Date déchéance",
 | 
					    "due_date": "Date d'échéance",
 | 
				
			||||||
    "expiry_date": "Date dexpiration",
 | 
					    "expiry_date": "Date dexpiration",
 | 
				
			||||||
    "status": "Statut",
 | 
					    "status": "Statut",
 | 
				
			||||||
    "add_tax": "Ajouter une taxe",
 | 
					    "add_tax": "Ajouter une taxe",
 | 
				
			||||||
    "amount": "Montante",
 | 
					    "amount": "Montant",
 | 
				
			||||||
    "action": "action",
 | 
					    "action": "action",
 | 
				
			||||||
    "notes": "Remarques",
 | 
					    "notes": "Remarques",
 | 
				
			||||||
    "tax": "Impôt",
 | 
					    "tax": "Impôt",
 | 
				
			||||||
@ -227,7 +235,7 @@
 | 
				
			|||||||
    "convert_to_invoice": "Convertir en facture",
 | 
					    "convert_to_invoice": "Convertir en facture",
 | 
				
			||||||
    "mark_as_sent": "Marquer comme envoyé",
 | 
					    "mark_as_sent": "Marquer comme envoyé",
 | 
				
			||||||
    "send_estimate": "Envoyer un devis",
 | 
					    "send_estimate": "Envoyer un devis",
 | 
				
			||||||
    "record_payment": "Record de paiement",
 | 
					    "record_payment": "Enregistrer un paiement",
 | 
				
			||||||
    "add_estimate": "Ajouter un devis",
 | 
					    "add_estimate": "Ajouter un devis",
 | 
				
			||||||
    "save_estimate": "Sauvegarder le devis",
 | 
					    "save_estimate": "Sauvegarder le devis",
 | 
				
			||||||
    "confirm_conversion": "Vous souhaitez convertir ce devis en facture?",
 | 
					    "confirm_conversion": "Vous souhaitez convertir ce devis en facture?",
 | 
				
			||||||
@ -269,14 +277,17 @@
 | 
				
			|||||||
      "quantity": "Quantité",
 | 
					      "quantity": "Quantité",
 | 
				
			||||||
      "price": "Prix",
 | 
					      "price": "Prix",
 | 
				
			||||||
      "discount": "Remise",
 | 
					      "discount": "Remise",
 | 
				
			||||||
      "total": "Totale",
 | 
					      "total": "Total",
 | 
				
			||||||
      "total_discount": "Remise totale",
 | 
					      "total_discount": "Remise totale",
 | 
				
			||||||
      "sub_total": "Total partiel",
 | 
					      "sub_total": "Total partiel",
 | 
				
			||||||
      "tax": "Impôt",
 | 
					      "tax": "Impôt",
 | 
				
			||||||
      "amount": "Montante",
 | 
					      "amount": "Montant",
 | 
				
			||||||
      "select_an_item": "Tapez ou cliquez pour sélectionner un élément",
 | 
					      "select_an_item": "Tapez ou cliquez pour sélectionner un élément",
 | 
				
			||||||
      "type_item_description": "Type Item Description (optionnel)"
 | 
					      "type_item_description": "Type Item Description (optionnel)"
 | 
				
			||||||
    }
 | 
					    },
 | 
				
			||||||
 | 
					    "no_matching_estimates": "Aucune estimation correspondante!",
 | 
				
			||||||
 | 
					    "user_email_does_not_exist": "L'e-mail de l'utilisateur n'existe pas",
 | 
				
			||||||
 | 
					    "something_went_wrong": "quelque chose a mal tourné"
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  "invoices": {
 | 
					  "invoices": {
 | 
				
			||||||
    "title": "Factures",
 | 
					    "title": "Factures",
 | 
				
			||||||
@ -287,13 +298,13 @@
 | 
				
			|||||||
    "all": "Toute",
 | 
					    "all": "Toute",
 | 
				
			||||||
    "paid": "Payé",
 | 
					    "paid": "Payé",
 | 
				
			||||||
    "unpaid": "Non payé",
 | 
					    "unpaid": "Non payé",
 | 
				
			||||||
    "customer": "CLIENTE CLIENT",
 | 
					    "customer": "CLIENT",
 | 
				
			||||||
    "paid_status": "Statut payé",
 | 
					    "paid_status": "Paiement",
 | 
				
			||||||
    "ref_no": "REF NO.",
 | 
					    "ref_no": "REF NO.",
 | 
				
			||||||
    "number": "NOMBRE",
 | 
					    "number": "N°",
 | 
				
			||||||
    "amount_due": "MONTANT DÛ",
 | 
					    "amount_due": "MONTANT DÛ",
 | 
				
			||||||
    "partially_paid": "Partiellement payé",
 | 
					    "partially_paid": "Partiellement payé",
 | 
				
			||||||
    "total": "Totale Total",
 | 
					    "total": "Total",
 | 
				
			||||||
    "discount": "Remise",
 | 
					    "discount": "Remise",
 | 
				
			||||||
    "sub_total": "Total partiel",
 | 
					    "sub_total": "Total partiel",
 | 
				
			||||||
    "invoice": "Facture | Factures",
 | 
					    "invoice": "Facture | Factures",
 | 
				
			||||||
@ -302,21 +313,23 @@
 | 
				
			|||||||
    "contact": "Contact",
 | 
					    "contact": "Contact",
 | 
				
			||||||
    "add_item": "Ajouter un article",
 | 
					    "add_item": "Ajouter un article",
 | 
				
			||||||
    "date": "Date",
 | 
					    "date": "Date",
 | 
				
			||||||
    "due_date": "Date déchéance",
 | 
					    "due_date": "Date d'échéance",
 | 
				
			||||||
    "status": "Statut",
 | 
					    "status": "Statut",
 | 
				
			||||||
    "add_tax": "Ajouter une taxe",
 | 
					    "add_tax": "Ajouter une taxe",
 | 
				
			||||||
    "amount": "Montante Montant",
 | 
					    "amount": "Montant",
 | 
				
			||||||
    "action": "action",
 | 
					    "action": "action",
 | 
				
			||||||
    "notes": "Remarques",
 | 
					    "notes": "Remarques",
 | 
				
			||||||
    "view": "Vue",
 | 
					    "view": "Voir",
 | 
				
			||||||
    "send_invoice": "Envoyer une facture",
 | 
					    "send_invoice": "Envoyer une facture",
 | 
				
			||||||
 | 
					    "cloned_successfully": "Facture clonée avec succès",
 | 
				
			||||||
 | 
					    "clone_invoice": "Cloner",
 | 
				
			||||||
    "invoice_template": "Modèle de facture",
 | 
					    "invoice_template": "Modèle de facture",
 | 
				
			||||||
    "template": "Modèle",
 | 
					    "template": "Modèle",
 | 
				
			||||||
    "mark_as_sent": "Marquer comme envoyé",
 | 
					    "mark_as_sent": "Marquer comme envoyé",
 | 
				
			||||||
    "invoice_mark_as_sent": "Cette facture sera marquée comme envoyé",
 | 
					    "invoice_mark_as_sent": "Cette facture sera marquée comme envoyé",
 | 
				
			||||||
    "confirm_send": "Cette facture sera envoyée par courrier électronique au client.",
 | 
					    "confirm_send": "Cette facture sera envoyée par courrier électronique au client.",
 | 
				
			||||||
    "invoice_date": "Date de facturation",
 | 
					    "invoice_date": "Date de facturation",
 | 
				
			||||||
    "record_payment": "Record de paiement",
 | 
					    "record_payment": "Enregister un paiement",
 | 
				
			||||||
    "add_new_invoice": "Ajouter une nouvelle facture",
 | 
					    "add_new_invoice": "Ajouter une nouvelle facture",
 | 
				
			||||||
    "update_expense": "Frais de mise à jour",
 | 
					    "update_expense": "Frais de mise à jour",
 | 
				
			||||||
    "edit_invoice": "Modifier la facture",
 | 
					    "edit_invoice": "Modifier la facture",
 | 
				
			||||||
@ -335,11 +348,11 @@
 | 
				
			|||||||
      "quantity": "Quantité",
 | 
					      "quantity": "Quantité",
 | 
				
			||||||
      "price": "Prix",
 | 
					      "price": "Prix",
 | 
				
			||||||
      "discount": "Remise",
 | 
					      "discount": "Remise",
 | 
				
			||||||
      "total": "Totale Total",
 | 
					      "total": "Total",
 | 
				
			||||||
      "total_discount": "Remise totale",
 | 
					      "total_discount": "Remise totale",
 | 
				
			||||||
      "sub_total": "Total partiel",
 | 
					      "sub_total": "Total partiel",
 | 
				
			||||||
      "tax": "Impôt",
 | 
					      "tax": "Impôt",
 | 
				
			||||||
      "amount": "Montante Montant",
 | 
					      "amount": "Montant",
 | 
				
			||||||
      "select_an_item": "Tapez ou cliquez pour sélectionner un élément",
 | 
					      "select_an_item": "Tapez ou cliquez pour sélectionner un élément",
 | 
				
			||||||
      "type_item_description": "Type Item Description (optionnel)"
 | 
					      "type_item_description": "Type Item Description (optionnel)"
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
@ -349,7 +362,12 @@
 | 
				
			|||||||
    "updated_message": "Facture mise à jour avec succès",
 | 
					    "updated_message": "Facture mise à jour avec succès",
 | 
				
			||||||
    "deleted_message": "La Facture a été supprimée ! | Les Factures ont été supprimées !",
 | 
					    "deleted_message": "La Facture a été supprimée ! | Les Factures ont été supprimées !",
 | 
				
			||||||
    "marked_as_sent_message": "Facture supprimée avec succès | Factures supprimées avec succès",
 | 
					    "marked_as_sent_message": "Facture supprimée avec succès | Factures supprimées avec succès",
 | 
				
			||||||
    "invalid_due_amount_message": "Le paiement entré est supérieur au montant total dû pour cette facture. Veuillez vérifier et réessayer"
 | 
					    "invalid_due_amount_message": "Le paiement entré est supérieur au montant total dû pour cette facture. Veuillez vérifier et réessayer",
 | 
				
			||||||
 | 
					    "confirm_send_invoice": "Cette facture sera envoyée par email au client",
 | 
				
			||||||
 | 
					    "no_matching_invoices": "Aucune facture correspondante!",
 | 
				
			||||||
 | 
					    "confirm_clone": "Cette facture sera clonée dans une nouvelle facture",
 | 
				
			||||||
 | 
					    "user_email_does_not_exist": "L'e-mail de l'utilisateur n'existe pas",
 | 
				
			||||||
 | 
					    "something_went_wrong": "quelque chose a mal tourné"
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  "credit_notes": {
 | 
					  "credit_notes": {
 | 
				
			||||||
    "title": "Notes de crédit",
 | 
					    "title": "Notes de crédit",
 | 
				
			||||||
@ -357,7 +375,7 @@
 | 
				
			|||||||
    "credit_notes": "Notes de crédit",
 | 
					    "credit_notes": "Notes de crédit",
 | 
				
			||||||
    "contact": "Contact",
 | 
					    "contact": "Contact",
 | 
				
			||||||
    "date": "Date",
 | 
					    "date": "Date",
 | 
				
			||||||
    "amount": "Montante Montant",
 | 
					    "amount": "Montant Montant",
 | 
				
			||||||
    "action": "action",
 | 
					    "action": "action",
 | 
				
			||||||
    "credit_number": "Numéro de crédit",
 | 
					    "credit_number": "Numéro de crédit",
 | 
				
			||||||
    "notes": "Remarques",
 | 
					    "notes": "Remarques",
 | 
				
			||||||
@ -368,7 +386,7 @@
 | 
				
			|||||||
      "quantity": "Quantité",
 | 
					      "quantity": "Quantité",
 | 
				
			||||||
      "price": "Prix",
 | 
					      "price": "Prix",
 | 
				
			||||||
      "discount": "Remise",
 | 
					      "discount": "Remise",
 | 
				
			||||||
      "total": "Totale Total",
 | 
					      "total": "Total",
 | 
				
			||||||
      "total_discount": "Remise totale",
 | 
					      "total_discount": "Remise totale",
 | 
				
			||||||
      "sub_total": "Total partiel",
 | 
					      "sub_total": "Total partiel",
 | 
				
			||||||
      "tax": "Impôt"
 | 
					      "tax": "Impôt"
 | 
				
			||||||
@ -377,12 +395,12 @@
 | 
				
			|||||||
  "payments": {
 | 
					  "payments": {
 | 
				
			||||||
    "title": "Paiements",
 | 
					    "title": "Paiements",
 | 
				
			||||||
    "payments_list": "Liste de paiements",
 | 
					    "payments_list": "Liste de paiements",
 | 
				
			||||||
    "record_payment": "Record de paiement",
 | 
					    "record_payment": "Enregistrer un paiement",
 | 
				
			||||||
    "customer": "Client Client",
 | 
					    "customer": "Client",
 | 
				
			||||||
    "date": "Date",
 | 
					    "date": "Date",
 | 
				
			||||||
    "amount": "Montant Montant",
 | 
					    "amount": "Montant",
 | 
				
			||||||
    "action": "action",
 | 
					    "action": "action",
 | 
				
			||||||
    "payment_number": "Numéro de paiement",
 | 
					    "payment_number": "N°",
 | 
				
			||||||
    "payment_mode": "Mode de paiement",
 | 
					    "payment_mode": "Mode de paiement",
 | 
				
			||||||
    "invoice": "Facture dachat",
 | 
					    "invoice": "Facture dachat",
 | 
				
			||||||
    "note": "Remarque",
 | 
					    "note": "Remarque",
 | 
				
			||||||
@ -391,6 +409,7 @@
 | 
				
			|||||||
    "edit_payment": "Modifier le paiement",
 | 
					    "edit_payment": "Modifier le paiement",
 | 
				
			||||||
    "view_payment": "Voir le paiement",
 | 
					    "view_payment": "Voir le paiement",
 | 
				
			||||||
    "add_new_payment": "Ajouter un nouveau paiement",
 | 
					    "add_new_payment": "Ajouter un nouveau paiement",
 | 
				
			||||||
 | 
					    "send_payment_receipt": "Envoyer le reçu",
 | 
				
			||||||
    "save_payment": "Enregistrer le paiement",
 | 
					    "save_payment": "Enregistrer le paiement",
 | 
				
			||||||
    "update_payment": "Mettre à jour le paiement",
 | 
					    "update_payment": "Mettre à jour le paiement",
 | 
				
			||||||
    "payment": "Paiement | Paiements",
 | 
					    "payment": "Paiement | Paiements",
 | 
				
			||||||
@ -403,7 +422,11 @@
 | 
				
			|||||||
    "created_message": "Paiement créé avec succès",
 | 
					    "created_message": "Paiement créé avec succès",
 | 
				
			||||||
    "updated_message": "Paiement mis à jour avec succès",
 | 
					    "updated_message": "Paiement mis à jour avec succès",
 | 
				
			||||||
    "deleted_message": "Paiement supprimé avec succès | Paiements supprimés avec succès",
 | 
					    "deleted_message": "Paiement supprimé avec succès | Paiements supprimés avec succès",
 | 
				
			||||||
    "invalid_amount_message": "Le montant du paiement est invalide"
 | 
					    "invalid_amount_message": "Le montant du paiement est invalide",
 | 
				
			||||||
 | 
					    "confirm_send_payment": "Ce paiement sera envoyé par e-mail au client",
 | 
				
			||||||
 | 
					    "send_payment_successfully": "Paiement envoyé avec succès",
 | 
				
			||||||
 | 
					    "user_email_does_not_exist": "L'e-mail de l'utilisateur n'existe pas",
 | 
				
			||||||
 | 
					    "something_went_wrong": "quelque chose a mal tourné"
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  "expenses": {
 | 
					  "expenses": {
 | 
				
			||||||
    "title": "Dépenses",
 | 
					    "title": "Dépenses",
 | 
				
			||||||
@ -425,7 +448,7 @@
 | 
				
			|||||||
    "date": "Date de dépense",
 | 
					    "date": "Date de dépense",
 | 
				
			||||||
    "add_expense": "Ajouter une dépense",
 | 
					    "add_expense": "Ajouter une dépense",
 | 
				
			||||||
    "add_new_expense": "Ajouter une nouvelle dépense",
 | 
					    "add_new_expense": "Ajouter une nouvelle dépense",
 | 
				
			||||||
    "save_expense": "Économiser des dépenses",
 | 
					    "save_expense": "Enregistrer la dépense",
 | 
				
			||||||
    "update_expense": "Frais de mise à jour",
 | 
					    "update_expense": "Frais de mise à jour",
 | 
				
			||||||
    "download_receipt": "Télécharger le reçu",
 | 
					    "download_receipt": "Télécharger le reçu",
 | 
				
			||||||
    "edit_expense": "Modifier les dépenses",
 | 
					    "edit_expense": "Modifier les dépenses",
 | 
				
			||||||
@ -449,7 +472,8 @@
 | 
				
			|||||||
      "new_category": "Nouvelle catégorie",
 | 
					      "new_category": "Nouvelle catégorie",
 | 
				
			||||||
      "category": "Catégorie | Les catégories",
 | 
					      "category": "Catégorie | Les catégories",
 | 
				
			||||||
      "select_a_category": "choisissez une catégorie"
 | 
					      "select_a_category": "choisissez une catégorie"
 | 
				
			||||||
    }
 | 
					    },
 | 
				
			||||||
 | 
					    "customer": "Client"
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  "login": {
 | 
					  "login": {
 | 
				
			||||||
    "email": "Email",
 | 
					    "email": "Email",
 | 
				
			||||||
@ -462,7 +486,8 @@
 | 
				
			|||||||
    "enter_email": "Entrer email",
 | 
					    "enter_email": "Entrer email",
 | 
				
			||||||
    "enter_password": "Entrer le mot de passe",
 | 
					    "enter_password": "Entrer le mot de passe",
 | 
				
			||||||
    "retype_password": "Retaper le mot de passe",
 | 
					    "retype_password": "Retaper le mot de passe",
 | 
				
			||||||
    "login_placeholder": "mail@example.com"
 | 
					    "login_placeholder": "mail@example.com",
 | 
				
			||||||
 | 
					    "password_reset_successfully": "Réinitialisation du mot de passe réussie"
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  "reports": {
 | 
					  "reports": {
 | 
				
			||||||
    "title": "rapport",
 | 
					    "title": "rapport",
 | 
				
			||||||
@ -501,7 +526,7 @@
 | 
				
			|||||||
      "invoice": "Facture d'achat",
 | 
					      "invoice": "Facture d'achat",
 | 
				
			||||||
      "invoice_date": "Date de facturation",
 | 
					      "invoice_date": "Date de facturation",
 | 
				
			||||||
      "due_date": "Date déchéance",
 | 
					      "due_date": "Date déchéance",
 | 
				
			||||||
      "amount": "Montante ",
 | 
					      "amount": "Montant ",
 | 
				
			||||||
      "contact_name": "Nom du contact",
 | 
					      "contact_name": "Nom du contact",
 | 
				
			||||||
      "status": "Statut"
 | 
					      "status": "Statut"
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
@ -509,7 +534,7 @@
 | 
				
			|||||||
      "estimate": "Devis",
 | 
					      "estimate": "Devis",
 | 
				
			||||||
      "estimate_date": "Date du devis",
 | 
					      "estimate_date": "Date du devis",
 | 
				
			||||||
      "due_date": "Date d'échéance",
 | 
					      "due_date": "Date d'échéance",
 | 
				
			||||||
      "estimate_number": "Numéro d'estimation",
 | 
					      "estimate_number": "N°",
 | 
				
			||||||
      "ref_number": "Numéro de ref",
 | 
					      "ref_number": "Numéro de ref",
 | 
				
			||||||
      "amount": "Montant",
 | 
					      "amount": "Montant",
 | 
				
			||||||
      "contact_name": "Nom du contact",
 | 
					      "contact_name": "Nom du contact",
 | 
				
			||||||
@ -529,6 +554,7 @@
 | 
				
			|||||||
    "menu_title": {
 | 
					    "menu_title": {
 | 
				
			||||||
      "account_settings": "Paramètres du compte",
 | 
					      "account_settings": "Paramètres du compte",
 | 
				
			||||||
      "company_information": "Informations sur la société",
 | 
					      "company_information": "Informations sur la société",
 | 
				
			||||||
 | 
					      "customization": "Personnalisation",
 | 
				
			||||||
      "preferences": "Préférences",
 | 
					      "preferences": "Préférences",
 | 
				
			||||||
      "notifications": "Les notifications",
 | 
					      "notifications": "Les notifications",
 | 
				
			||||||
      "tax_types": "Types de taxe",
 | 
					      "tax_types": "Types de taxe",
 | 
				
			||||||
@ -593,10 +619,92 @@
 | 
				
			|||||||
      "state": "Etat",
 | 
					      "state": "Etat",
 | 
				
			||||||
      "city": "Ville",
 | 
					      "city": "Ville",
 | 
				
			||||||
      "address": "Adresse",
 | 
					      "address": "Adresse",
 | 
				
			||||||
      "zip": "Zip",
 | 
					      "zip": "Code postal",
 | 
				
			||||||
      "save": "sauver",
 | 
					      "save": "Sauvegarder",
 | 
				
			||||||
      "updated_message": "Informations sur la société mises à jour avec succès"
 | 
					      "updated_message": "Informations sur la société mises à jour avec succès"
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    "customization": {
 | 
				
			||||||
 | 
					      "customization": "Personnalisation",
 | 
				
			||||||
 | 
					      "save": "Sauvegarder",
 | 
				
			||||||
 | 
					      "addresses": {
 | 
				
			||||||
 | 
					        "title": "Adresses",
 | 
				
			||||||
 | 
					        "section_description": "You can set Customer Billing Address and Customer Shipping Address Format (Displayed in PDF only). ",
 | 
				
			||||||
 | 
					        "customer_billing_address": "Adresse de paiement",
 | 
				
			||||||
 | 
					        "customer_shipping_address": "Adresse de livraison",
 | 
				
			||||||
 | 
					        "company_address": "Adresse de l'entreprise",
 | 
				
			||||||
 | 
					        "insert_fields": "Ajouter des champs",
 | 
				
			||||||
 | 
					        "contact": "Contact",
 | 
				
			||||||
 | 
					        "address": "Addresse",
 | 
				
			||||||
 | 
					        "display_name": "Nom",
 | 
				
			||||||
 | 
					        "primary_contact_name": "Nom du contact principal",
 | 
				
			||||||
 | 
					        "email": "Email",
 | 
				
			||||||
 | 
					        "website": "Website",
 | 
				
			||||||
 | 
					        "name": "Nom",
 | 
				
			||||||
 | 
					        "country": "Pays",
 | 
				
			||||||
 | 
					        "state": "State",
 | 
				
			||||||
 | 
					        "city": "Ville",
 | 
				
			||||||
 | 
					        "company_name": "Nom de l'entreprise",
 | 
				
			||||||
 | 
					        "address_street_1": "Rue",
 | 
				
			||||||
 | 
					        "address_street_2": "Complément",
 | 
				
			||||||
 | 
					        "phone": "Téléphone",
 | 
				
			||||||
 | 
					        "zip_code": "Code postal",
 | 
				
			||||||
 | 
					        "address_setting_updated": "Adresse mise à jour avec succès"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "updated_message": "Informations de l'entreprise mises à jour",
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      "invoices": {
 | 
				
			||||||
 | 
					        "title": "Factures",
 | 
				
			||||||
 | 
					        "notes": "Notes",
 | 
				
			||||||
 | 
					        "invoice_prefix": "Préfixe",
 | 
				
			||||||
 | 
					        "invoice_settings": "Paramètre",
 | 
				
			||||||
 | 
					        "autogenerate_invoice_number": "Générer automatiquement le numéro de facture",
 | 
				
			||||||
 | 
					        "invoice_setting_description": "Désactivez cette option si vous ne souhaitez pas générer automatiquement les numéros de facture à chaque fois que vous en créez une nouvelle.",
 | 
				
			||||||
 | 
					        "enter_invoice_prefix": "Ajouter le préfixe de facture",
 | 
				
			||||||
 | 
					        "terms_and_conditions": "Termes et conditions",
 | 
				
			||||||
 | 
					        "invoice_setting_updated": "Paramètres de facturation mis à jour"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      "estimates": {
 | 
				
			||||||
 | 
					        "title": "Devis",
 | 
				
			||||||
 | 
					        "estimate_prefix": "Préfixe",
 | 
				
			||||||
 | 
					        "estimate_settings": "Paramètre",
 | 
				
			||||||
 | 
					        "autogenerate_estimate_number": "Générer automatiquement le numéro de devis",
 | 
				
			||||||
 | 
					        "estimate_setting_description": "Désactivez cette option si vous ne souhaitez pas générer automatiquement les numéros de devis à chaque fois que vous en créez un nouveau.",
 | 
				
			||||||
 | 
					        "estimate_setting_updated": "Paramètres de devis mis à jour"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      "payments": {
 | 
				
			||||||
 | 
					        "title": "Paiements",
 | 
				
			||||||
 | 
					        "payment_prefix": "Préfixe",
 | 
				
			||||||
 | 
					        "payment_settings": "Paramètre",
 | 
				
			||||||
 | 
					        "autogenerate_payment_number": "Générer automatiquement le numéro de paiement",
 | 
				
			||||||
 | 
					        "payment_setting_description": "Désactivez cette option si vous ne souhaitez pas générer automatiquement les numéros de paiement à chaque fois que vous en créez un nouveau.",
 | 
				
			||||||
 | 
					        "payment_setting_updated": "Les paramètres de paiement ont bien été mis à jour",
 | 
				
			||||||
 | 
					        "payment_mode": "Mode de paiement",
 | 
				
			||||||
 | 
					        "add_payment_mode": "Ajouter un mode de paiement",
 | 
				
			||||||
 | 
					        "edit_payment_mode": "Modifier le mode de paiement",
 | 
				
			||||||
 | 
					        "mode_name": "Nom",
 | 
				
			||||||
 | 
					        "payment_mode_added": "Mode de paiement ajouté",
 | 
				
			||||||
 | 
					        "payment_mode_updated": "Mode de paiement mis à jour",
 | 
				
			||||||
 | 
					        "payment_mode_confirm_delete": "Êtes-vous sur de supprimer ce mode de paiement ?",
 | 
				
			||||||
 | 
					        "already_in_use": "Ce mode de paiement existe déjà.",
 | 
				
			||||||
 | 
					        "deleted_message": "Mode de paiement supprimé avec succès"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      "items": {
 | 
				
			||||||
 | 
					        "title": "Articles",
 | 
				
			||||||
 | 
					        "units": "Unités",
 | 
				
			||||||
 | 
					        "add_item_unit": "Ajouter une unité",
 | 
				
			||||||
 | 
					        "edit_item_unit": "Modifier l'unité d'élément",
 | 
				
			||||||
 | 
					        "unit_name": "Nom",
 | 
				
			||||||
 | 
					        "item_unit_added": "Unité ajouté",
 | 
				
			||||||
 | 
					        "item_unit_updated": "Unité mis à jour",
 | 
				
			||||||
 | 
					        "item_unit_confirm_delete": "Êtes-vous sur de supprimer cette unité ?",
 | 
				
			||||||
 | 
					        "already_in_use": "Cette unité existe déjà",
 | 
				
			||||||
 | 
					        "deleted_message": "Unité supprimé avec succès"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "account_settings": {
 | 
					    "account_settings": {
 | 
				
			||||||
      "profile_picture": "Image de profil",
 | 
					      "profile_picture": "Image de profil",
 | 
				
			||||||
      "name": "Nom",
 | 
					      "name": "Nom",
 | 
				
			||||||
@ -604,7 +712,7 @@
 | 
				
			|||||||
      "password": "Mot de passe",
 | 
					      "password": "Mot de passe",
 | 
				
			||||||
      "confirm_password": "Confirmez le mot de passe",
 | 
					      "confirm_password": "Confirmez le mot de passe",
 | 
				
			||||||
      "account_settings": "Paramètres du compte",
 | 
					      "account_settings": "Paramètres du compte",
 | 
				
			||||||
      "save": "sauver",
 | 
					      "save": "Sauvegarder",
 | 
				
			||||||
      "section_description": "Vous pouvez mettre à jour votre nom, votre email et votre mot de passe en utilisant le formulaire ci-dessous.",
 | 
					      "section_description": "Vous pouvez mettre à jour votre nom, votre email et votre mot de passe en utilisant le formulaire ci-dessous.",
 | 
				
			||||||
      "updated_message": "Paramètres du compte mis à jour avec succès"
 | 
					      "updated_message": "Paramètres du compte mis à jour avec succès"
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
@ -619,10 +727,10 @@
 | 
				
			|||||||
      "email": "Envoyer des notifications à",
 | 
					      "email": "Envoyer des notifications à",
 | 
				
			||||||
      "description": "Quelles notifications par courrier électronique souhaitez-vous recevoir lorsque quelque chose change?",
 | 
					      "description": "Quelles notifications par courrier électronique souhaitez-vous recevoir lorsque quelque chose change?",
 | 
				
			||||||
      "invoice_viewed": "Facture consultée",
 | 
					      "invoice_viewed": "Facture consultée",
 | 
				
			||||||
      "invoice_viewed_desc": "Lorsque votre client visualise la facture envoyée via le tableau de bord du cratère.",
 | 
					      "invoice_viewed_desc": "Lorsque le client visualise la facture envoyée via le tableau de bord de Neptune.",
 | 
				
			||||||
      "estimate_viewed": "Estimation vue",
 | 
					      "estimate_viewed": "Devis consulté",
 | 
				
			||||||
      "estimate_viewed_desc": "Lorsque votre client visualise le devis envoyé via le tableau de bord du cratère.",
 | 
					      "estimate_viewed_desc": "Lorsque le client visualise le devis envoyé via le tableau de bord de Neptune.",
 | 
				
			||||||
      "save": "sauver",
 | 
					      "save": "Sauvegarder",
 | 
				
			||||||
      "email_save_message": "Email enregistré avec succès",
 | 
					      "email_save_message": "Email enregistré avec succès",
 | 
				
			||||||
      "invoice_viewed_message": "Facture consultée",
 | 
					      "invoice_viewed_message": "Facture consultée",
 | 
				
			||||||
      "estimate_viewed_message": "Estimation vue",
 | 
					      "estimate_viewed_message": "Estimation vue",
 | 
				
			||||||
@ -631,6 +739,7 @@
 | 
				
			|||||||
    "tax_types": {
 | 
					    "tax_types": {
 | 
				
			||||||
      "title": "Types de taxe",
 | 
					      "title": "Types de taxe",
 | 
				
			||||||
      "add_tax": "Ajouter une taxe",
 | 
					      "add_tax": "Ajouter une taxe",
 | 
				
			||||||
 | 
					      "edit_tax": "Modifier la taxe",
 | 
				
			||||||
      "description": "Vous pouvez ajouter ou supprimer des taxes à votre guise. Crater prend en charge les taxes sur les articles individuels ainsi que sur la facture.",
 | 
					      "description": "Vous pouvez ajouter ou supprimer des taxes à votre guise. Crater prend en charge les taxes sur les articles individuels ainsi que sur la facture.",
 | 
				
			||||||
      "add_new_tax": "Ajouter une nouvelle taxe",
 | 
					      "add_new_tax": "Ajouter une nouvelle taxe",
 | 
				
			||||||
      "tax_settings": "Paramètres de taxe",
 | 
					      "tax_settings": "Paramètres de taxe",
 | 
				
			||||||
@ -651,8 +760,10 @@
 | 
				
			|||||||
      "action": "action",
 | 
					      "action": "action",
 | 
				
			||||||
      "description": "Des catégories sont requises pour ajouter des entrées de dépenses. Vous pouvez ajouter ou supprimer ces catégories selon vos préférences.",
 | 
					      "description": "Des catégories sont requises pour ajouter des entrées de dépenses. Vous pouvez ajouter ou supprimer ces catégories selon vos préférences.",
 | 
				
			||||||
      "add_new_category": "Ajouter une nouvelle catégorie",
 | 
					      "add_new_category": "Ajouter une nouvelle catégorie",
 | 
				
			||||||
 | 
					      "add_category": "Adicionar categoria",
 | 
				
			||||||
 | 
					      "edit_category": "Editar categoria",
 | 
				
			||||||
      "category_name": "Nom de catégorie",
 | 
					      "category_name": "Nom de catégorie",
 | 
				
			||||||
      "category_description": "La description",
 | 
					      "category_description": "Description",
 | 
				
			||||||
      "created_message": "Catégorie de dépenses créée avec succès",
 | 
					      "created_message": "Catégorie de dépenses créée avec succès",
 | 
				
			||||||
      "deleted_message": "La catégorie de dépenses a été supprimée avec succès",
 | 
					      "deleted_message": "La catégorie de dépenses a été supprimée avec succès",
 | 
				
			||||||
      "updated_message": "Catégorie de dépenses mise à jour avec succès",
 | 
					      "updated_message": "Catégorie de dépenses mise à jour avec succès",
 | 
				
			||||||
@ -668,7 +779,7 @@
 | 
				
			|||||||
      "discount_setting": "Réglage de remise",
 | 
					      "discount_setting": "Réglage de remise",
 | 
				
			||||||
      "discount_per_item": "Remise par article",
 | 
					      "discount_per_item": "Remise par article",
 | 
				
			||||||
      "discount_setting_description": "Activez cette option si vous souhaitez ajouter une remise à des postes de facture individuels. Par défaut, les remises sont ajoutées directement à la facture.",
 | 
					      "discount_setting_description": "Activez cette option si vous souhaitez ajouter une remise à des postes de facture individuels. Par défaut, les remises sont ajoutées directement à la facture.",
 | 
				
			||||||
      "save": "sauver",
 | 
					      "save": "Sauvegarder",
 | 
				
			||||||
      "preference": "Préférence | Préférences",
 | 
					      "preference": "Préférence | Préférences",
 | 
				
			||||||
      "general_settings": "Préférences par défaut pour le système.",
 | 
					      "general_settings": "Préférences par défaut pour le système.",
 | 
				
			||||||
      "updated_message": "Préférences mises à jour avec succès",
 | 
					      "updated_message": "Préférences mises à jour avec succès",
 | 
				
			||||||
@ -689,7 +800,14 @@
 | 
				
			|||||||
      "progress_text": "Cela ne prendra que quelques minutes. S'il vous plaît ne pas actualiser l'écran ou fermer la fenêtre avant la fin de la mise à jour",
 | 
					      "progress_text": "Cela ne prendra que quelques minutes. S'il vous plaît ne pas actualiser l'écran ou fermer la fenêtre avant la fin de la mise à jour",
 | 
				
			||||||
      "update_success": "App a été mis à jour! Veuillez patienter pendant le rechargement automatique de la fenêtre de votre navigateur.",
 | 
					      "update_success": "App a été mis à jour! Veuillez patienter pendant le rechargement automatique de la fenêtre de votre navigateur.",
 | 
				
			||||||
      "latest_message": "Pas de mise a jour disponible! Vous êtes sur la dernière version.",
 | 
					      "latest_message": "Pas de mise a jour disponible! Vous êtes sur la dernière version.",
 | 
				
			||||||
      "current_version": "Version actuelle"
 | 
					      "current_version": "Version actuelle",
 | 
				
			||||||
 | 
					      "download_zip_file": "Télécharger le fichier ZIP",
 | 
				
			||||||
 | 
					      "unzipping_package": "Dézipper le package",
 | 
				
			||||||
 | 
					      "copying_files": "Copie de fichiers",
 | 
				
			||||||
 | 
					      "running_migrations": "Exécution de migrations",
 | 
				
			||||||
 | 
					      "finishing_update": "Mise à jour de finition",
 | 
				
			||||||
 | 
					      "update_failed": "Mise à jour a échoué",
 | 
				
			||||||
 | 
					      "update_failed_text": "Désolé! Votre mise à jour a échoué à: {step} étape"
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  "wizard": {
 | 
					  "wizard": {
 | 
				
			||||||
@ -774,7 +892,8 @@
 | 
				
			|||||||
    "success": {
 | 
					    "success": {
 | 
				
			||||||
      "mail_variables_save_successfully": "Email configuré avec succès",
 | 
					      "mail_variables_save_successfully": "Email configuré avec succès",
 | 
				
			||||||
      "database_variables_save_successfully": "Base de données configurée avec succès."
 | 
					      "database_variables_save_successfully": "Base de données configurée avec succès."
 | 
				
			||||||
    }
 | 
					    },
 | 
				
			||||||
 | 
					    "skip": "sauter"
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  "layout_login": {
 | 
					  "layout_login": {
 | 
				
			||||||
    "copyright_crater": "Copyright @ Crater - 2020",
 | 
					    "copyright_crater": "Copyright @ Crater - 2020",
 | 
				
			||||||
@ -783,7 +902,6 @@
 | 
				
			|||||||
    "small_businesses": "Petites entreprises ",
 | 
					    "small_businesses": "Petites entreprises ",
 | 
				
			||||||
    "crater_help": "Crater vous aide à suivre vos dépenses, à enregistrer vos paiements et à générer de belles",
 | 
					    "crater_help": "Crater vous aide à suivre vos dépenses, à enregistrer vos paiements et à générer de belles",
 | 
				
			||||||
    "invoices_and_estimates": "factures et devis avec possibilité de choisir plusieurs modèles."
 | 
					    "invoices_and_estimates": "factures et devis avec possibilité de choisir plusieurs modèles."
 | 
				
			||||||
 | 
					 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  "validation": {
 | 
					  "validation": {
 | 
				
			||||||
    "invalid_url": "URL invalide (ex: http://www.crater.com)",
 | 
					    "invalid_url": "URL invalide (ex: http://www.crater.com)",
 | 
				
			||||||
@ -814,6 +932,7 @@
 | 
				
			|||||||
    "maximum_options_error": "Maximum de {max} options sélectionnées. Commencez par supprimer une option sélectionnée pour en sélectionner une autre.",
 | 
					    "maximum_options_error": "Maximum de {max} options sélectionnées. Commencez par supprimer une option sélectionnée pour en sélectionner une autre.",
 | 
				
			||||||
    "notes_maxlength": "Les notes ne doivent pas dépasser 255 caractères.",
 | 
					    "notes_maxlength": "Les notes ne doivent pas dépasser 255 caractères.",
 | 
				
			||||||
    "address_maxlength": "L'adresse ne doit pas dépasser 255 caractères.",
 | 
					    "address_maxlength": "L'adresse ne doit pas dépasser 255 caractères.",
 | 
				
			||||||
    "ref_number_maxlength": "Le numéro de référence ne doit pas dépasser 255 caractères."
 | 
					    "ref_number_maxlength": "Le numéro de référence ne doit pas dépasser 255 caractères.",
 | 
				
			||||||
 | 
					    "email_already_taken": "Un compte est déjà associé à cette adresse e-mail."
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -7,7 +7,6 @@ import ar from './ar.json'
 | 
				
			|||||||
import de from './de.json'
 | 
					import de from './de.json'
 | 
				
			||||||
import pt_BR from './pt-br.json'
 | 
					import pt_BR from './pt-br.json'
 | 
				
			||||||
import it from './it.json'
 | 
					import it from './it.json'
 | 
				
			||||||
import nl from './nl.json'
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
Vue.use(VueI18n)
 | 
					Vue.use(VueI18n)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -21,7 +20,6 @@ const i18n = new VueI18n({
 | 
				
			|||||||
    de,
 | 
					    de,
 | 
				
			||||||
    pt_BR,
 | 
					    pt_BR,
 | 
				
			||||||
    it,
 | 
					    it,
 | 
				
			||||||
    nl,
 | 
					 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
})
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -71,14 +71,14 @@
 | 
				
			|||||||
    "go_home": "Vai alla Home",
 | 
					    "go_home": "Vai alla Home",
 | 
				
			||||||
    "test_mail_conf": "Configurazione della mail di test",
 | 
					    "test_mail_conf": "Configurazione della mail di test",
 | 
				
			||||||
    "send_mail_successfully": "Mail inviata con successo",
 | 
					    "send_mail_successfully": "Mail inviata con successo",
 | 
				
			||||||
 | 
					 | 
				
			||||||
    "setting_updated": "Configurazioni aggiornate con successo",
 | 
					    "setting_updated": "Configurazioni aggiornate con successo",
 | 
				
			||||||
    "select_state": "Seleziona lo Stato",
 | 
					    "select_state": "Seleziona lo Stato",
 | 
				
			||||||
    "select_country": "Seleziona Paese",
 | 
					    "select_country": "Seleziona Paese",
 | 
				
			||||||
    "select_city": "Seleziona Città",
 | 
					    "select_city": "Seleziona Città",
 | 
				
			||||||
    "street_1": "Indirizzo 1",
 | 
					    "street_1": "Indirizzo 1",
 | 
				
			||||||
    "street_2": "Indirizzo 2",
 | 
					    "street_2": "Indirizzo 2",
 | 
				
			||||||
    "action_failed": "Errore"
 | 
					    "action_failed": "Errore",
 | 
				
			||||||
 | 
					    "retry": "Retry"
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  "dashboard": {
 | 
					  "dashboard": {
 | 
				
			||||||
    "select_year": "Seleziona anno",
 | 
					    "select_year": "Seleziona anno",
 | 
				
			||||||
@ -164,7 +164,7 @@
 | 
				
			|||||||
    "select_a_customer": "Seleziona Cliente",
 | 
					    "select_a_customer": "Seleziona Cliente",
 | 
				
			||||||
    "type_or_click": "Scrivi o clicca per selezionare",
 | 
					    "type_or_click": "Scrivi o clicca per selezionare",
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    "confirm_delete": "Non potrai più recuperare il cliente cancellato | Non potrai più recuperare i clienti cancellati",
 | 
					    "confirm_delete": "Non sarai in grado di recuperare questo cliente e tutte le relative fatture, stime e pagamenti. | Non sarai in grado di recuperare questi clienti e tutte le relative fatture, stime e pagamenti.",
 | 
				
			||||||
    "created_message": "Cliente creato con successo",
 | 
					    "created_message": "Cliente creato con successo",
 | 
				
			||||||
    "updated_message": "Cliente aggiornato con successo",
 | 
					    "updated_message": "Cliente aggiornato con successo",
 | 
				
			||||||
    "deleted_message": "Cliente cancellato con successo | Clienti cancellati con successo"
 | 
					    "deleted_message": "Cliente cancellato con successo | Clienti cancellati con successo"
 | 
				
			||||||
@ -430,6 +430,7 @@
 | 
				
			|||||||
    "expense_title": "Titolo",
 | 
					    "expense_title": "Titolo",
 | 
				
			||||||
    "contact": "Contatto",
 | 
					    "contact": "Contatto",
 | 
				
			||||||
    "category": "Categoria",
 | 
					    "category": "Categoria",
 | 
				
			||||||
 | 
					    "customer": "Cliente",
 | 
				
			||||||
    "from_date": "Dalla Data",
 | 
					    "from_date": "Dalla Data",
 | 
				
			||||||
    "to_date": "Alla Data",
 | 
					    "to_date": "Alla Data",
 | 
				
			||||||
    "expense_date": "Data",
 | 
					    "expense_date": "Data",
 | 
				
			||||||
@ -677,10 +678,11 @@
 | 
				
			|||||||
        "payment_setting_updated": "Impostazioni di pagamento aggiornate con successo",
 | 
					        "payment_setting_updated": "Impostazioni di pagamento aggiornate con successo",
 | 
				
			||||||
        "payment_mode": "Modalità di pagamento",
 | 
					        "payment_mode": "Modalità di pagamento",
 | 
				
			||||||
        "add_payment_mode": "Aggiungi modalità di pagamento",
 | 
					        "add_payment_mode": "Aggiungi modalità di pagamento",
 | 
				
			||||||
 | 
					        "edit_payment_mode": "Modifica modalità di pagamento",
 | 
				
			||||||
        "mode_name": "Nome modalità",
 | 
					        "mode_name": "Nome modalità",
 | 
				
			||||||
        "payment_mode_added": "Modalità di pagamento aggiunta",
 | 
					        "payment_mode_added": "Modalità di pagamento aggiunta",
 | 
				
			||||||
        "payment_mode_updated": "Modalità di pagamento aggiornata",
 | 
					        "payment_mode_updated": "Modalità di pagamento aggiornata",
 | 
				
			||||||
            "payment_mode_confirm_delete":"Non potrai ripristinare la modalità di pagamento",
 | 
					        "payment_mode_confirm_delete": "Non potrai ripristinare la modalità di pagamento",
 | 
				
			||||||
        "already_in_use": "Modalità di pagamento già in uso",
 | 
					        "already_in_use": "Modalità di pagamento già in uso",
 | 
				
			||||||
        "deleted_message": "Payment Mode deleted successfully"
 | 
					        "deleted_message": "Payment Mode deleted successfully"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
@ -689,10 +691,11 @@
 | 
				
			|||||||
        "title": "Items",
 | 
					        "title": "Items",
 | 
				
			||||||
        "units": "unità",
 | 
					        "units": "unità",
 | 
				
			||||||
        "add_item_unit": "Aggiungi Unità Item",
 | 
					        "add_item_unit": "Aggiungi Unità Item",
 | 
				
			||||||
 | 
					        "edit_item_unit": "Modifica unità articolo",
 | 
				
			||||||
        "unit_name": "Nome",
 | 
					        "unit_name": "Nome",
 | 
				
			||||||
        "item_unit_added": "Unità aggiunta",
 | 
					        "item_unit_added": "Unità aggiunta",
 | 
				
			||||||
        "item_unit_updated": "Unità aggiornata",
 | 
					        "item_unit_updated": "Unità aggiornata",
 | 
				
			||||||
            "item_unit_confirm_delete":"Non potrai ripristinare questa unità Item",
 | 
					        "item_unit_confirm_delete": "Non potrai ripristinare questa unità Item",
 | 
				
			||||||
        "already_in_use": "Unità Item già in uso",
 | 
					        "already_in_use": "Unità Item già in uso",
 | 
				
			||||||
        "deleted_message": "Unità item eliminata con successo"
 | 
					        "deleted_message": "Unità item eliminata con successo"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
@ -729,6 +732,7 @@
 | 
				
			|||||||
    "tax_types": {
 | 
					    "tax_types": {
 | 
				
			||||||
      "title": "Tipi di Imposta",
 | 
					      "title": "Tipi di Imposta",
 | 
				
			||||||
      "add_tax": "Aggiungi Imposta",
 | 
					      "add_tax": "Aggiungi Imposta",
 | 
				
			||||||
 | 
					      "edit_tax": "Modifica imposta",
 | 
				
			||||||
      "description": "Puoi aggiongere e rimuovere imposte a piacimento. Vengono supportate Tasse differenti per prodotti/servizi specifici esattamento come per le fatture.",
 | 
					      "description": "Puoi aggiongere e rimuovere imposte a piacimento. Vengono supportate Tasse differenti per prodotti/servizi specifici esattamento come per le fatture.",
 | 
				
			||||||
      "add_new_tax": "Aggiungi nuova imposta",
 | 
					      "add_new_tax": "Aggiungi nuova imposta",
 | 
				
			||||||
      "tax_settings": "Impostazioni Imposte",
 | 
					      "tax_settings": "Impostazioni Imposte",
 | 
				
			||||||
@ -749,6 +753,8 @@
 | 
				
			|||||||
      "action": "Azione",
 | 
					      "action": "Azione",
 | 
				
			||||||
      "description": "Le categorie sono necessarie per aggiungere delle voci di spesa. Puoi aggiungere o eliminare queste categorie in base alle tue preferenze.",
 | 
					      "description": "Le categorie sono necessarie per aggiungere delle voci di spesa. Puoi aggiungere o eliminare queste categorie in base alle tue preferenze.",
 | 
				
			||||||
      "add_new_category": "Aggiungi nuova categoria",
 | 
					      "add_new_category": "Aggiungi nuova categoria",
 | 
				
			||||||
 | 
					      "add_category": "Aggiungi categoria",
 | 
				
			||||||
 | 
					      "edit_category": "Modifica categoria",
 | 
				
			||||||
      "category_name": "Nome Categoria",
 | 
					      "category_name": "Nome Categoria",
 | 
				
			||||||
      "category_description": "Descrizione",
 | 
					      "category_description": "Descrizione",
 | 
				
			||||||
      "created_message": "Categoria di spesa creata con successo",
 | 
					      "created_message": "Categoria di spesa creata con successo",
 | 
				
			||||||
@ -786,7 +792,14 @@
 | 
				
			|||||||
      "progress_text": "Sarà necessario qualche minuto. Per favore non aggiornare la pagina e non chiudere la finestra prima che l'aggiornamento sia completato",
 | 
					      "progress_text": "Sarà necessario qualche minuto. Per favore non aggiornare la pagina e non chiudere la finestra prima che l'aggiornamento sia completato",
 | 
				
			||||||
      "update_success": "L'App è aggiornata! Attendi che la pagina venga ricaricata automaticamente.",
 | 
					      "update_success": "L'App è aggiornata! Attendi che la pagina venga ricaricata automaticamente.",
 | 
				
			||||||
      "latest_message": "Nessun aggiornamneto disponibile! Sei già alla versione più recente.",
 | 
					      "latest_message": "Nessun aggiornamneto disponibile! Sei già alla versione più recente.",
 | 
				
			||||||
      "current_version": "Versione corrente"
 | 
					      "current_version": "Versione corrente",
 | 
				
			||||||
 | 
					      "download_zip_file": "Scarica il file ZIP",
 | 
				
			||||||
 | 
					      "unzipping_package": "Pacchetto di decompressione",
 | 
				
			||||||
 | 
					      "copying_files": "Copia dei file",
 | 
				
			||||||
 | 
					      "running_migrations": "Esecuzione delle migrazioni",
 | 
				
			||||||
 | 
					      "finishing_update": "Aggiornamento di finitura",
 | 
				
			||||||
 | 
					      "update_failed": "Aggiornamento non riuscito",
 | 
				
			||||||
 | 
					      "update_failed_text": "Scusate! L'aggiornamento non è riuscito il: passaggio {step}"
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  "wizard": {
 | 
					  "wizard": {
 | 
				
			||||||
 | 
				
			|||||||
@ -1,912 +0,0 @@
 | 
				
			|||||||
{
 | 
					 | 
				
			||||||
    "navigation": {
 | 
					 | 
				
			||||||
        "dashboard": "Dashboard",
 | 
					 | 
				
			||||||
        "customers": "Klanten",
 | 
					 | 
				
			||||||
        "items": "Artikelen",
 | 
					 | 
				
			||||||
        "invoices": "Facturen",
 | 
					 | 
				
			||||||
        "expenses": "Uitgaven",
 | 
					 | 
				
			||||||
        "estimates": "Offertes",
 | 
					 | 
				
			||||||
        "payments": "Betalingen",
 | 
					 | 
				
			||||||
        "reports": "Rapporten",
 | 
					 | 
				
			||||||
        "settings": "Instellingen",
 | 
					 | 
				
			||||||
        "logout": "Uitloggen"
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "general": {
 | 
					 | 
				
			||||||
        "view_pdf": "Bekijk PDF",
 | 
					 | 
				
			||||||
        "download_pdf": "Download PDF",
 | 
					 | 
				
			||||||
        "save": "Opslaan",
 | 
					 | 
				
			||||||
        "cancel": "Annuleer",
 | 
					 | 
				
			||||||
        "update": "Bewerk",
 | 
					 | 
				
			||||||
        "download": "Download",
 | 
					 | 
				
			||||||
        "from_date": "Van datum",
 | 
					 | 
				
			||||||
        "to_date": "tot datum",
 | 
					 | 
				
			||||||
        "from": "Van",
 | 
					 | 
				
			||||||
        "to": "Naar",
 | 
					 | 
				
			||||||
        "go_back": "Ga terug",
 | 
					 | 
				
			||||||
        "back_to_login": "Terug naar inloggen?",
 | 
					 | 
				
			||||||
        "home": "Home",
 | 
					 | 
				
			||||||
        "filter": "Filter",
 | 
					 | 
				
			||||||
        "delete": "Verwijder",
 | 
					 | 
				
			||||||
        "edit": "Bewerk",
 | 
					 | 
				
			||||||
        "view": "Bekijk",
 | 
					 | 
				
			||||||
        "add_new_item": "Nieuw product",
 | 
					 | 
				
			||||||
        "clear_all": "Alles wissen",
 | 
					 | 
				
			||||||
        "showing": "Tonen",
 | 
					 | 
				
			||||||
        "of": "van",
 | 
					 | 
				
			||||||
        "actions": "Acties",
 | 
					 | 
				
			||||||
        "subtotal": "SUBTOTAAL",
 | 
					 | 
				
			||||||
        "discount": "KORTING",
 | 
					 | 
				
			||||||
        "fixed": "Vast",
 | 
					 | 
				
			||||||
        "percentage": "Percentage",
 | 
					 | 
				
			||||||
        "tax": "BTW",
 | 
					 | 
				
			||||||
        "total_amount": "TOTAAL BEDRAG",
 | 
					 | 
				
			||||||
        "bill_to": "Factureren aan",
 | 
					 | 
				
			||||||
        "ship_to": "Verzenden naar",
 | 
					 | 
				
			||||||
        "due": "Verschuldigd",
 | 
					 | 
				
			||||||
        "draft": "Concept",
 | 
					 | 
				
			||||||
        "sent": "Verzonden",
 | 
					 | 
				
			||||||
        "all": "Alles",
 | 
					 | 
				
			||||||
        "select_all": "Selecteer Alles",
 | 
					 | 
				
			||||||
        "choose_file": "Klik hier om een bestand te kiezen",
 | 
					 | 
				
			||||||
        "choose_template": "Kies een template",
 | 
					 | 
				
			||||||
        "choose": "Kies",
 | 
					 | 
				
			||||||
        "remove": "Verwijder",
 | 
					 | 
				
			||||||
        "powered_by": "Powered by",
 | 
					 | 
				
			||||||
        "bytefury": "Bytefury",
 | 
					 | 
				
			||||||
        "select_a_status": "Selecteer een status",
 | 
					 | 
				
			||||||
        "select_a_tax": "Select een btw",
 | 
					 | 
				
			||||||
        "search": "Zoek",
 | 
					 | 
				
			||||||
        "are_you_sure": "Ben je zeker?",
 | 
					 | 
				
			||||||
        "list_is_empty": "Lijst is leeg.",
 | 
					 | 
				
			||||||
        "no_tax_found": "Geen btw gevonden!",
 | 
					 | 
				
			||||||
        "four_zero_four": "404",
 | 
					 | 
				
			||||||
        "you_got_lost": "Whoops! Je bent verloren!",
 | 
					 | 
				
			||||||
        "go_home": "Ga naar de homepagina",
 | 
					 | 
				
			||||||
        "setting_updated": "Instellingen zijn geüpdatet",
 | 
					 | 
				
			||||||
        "select_state": "Selecteer staat",
 | 
					 | 
				
			||||||
        "select_country": "Selecteer land",
 | 
					 | 
				
			||||||
        "select_city": "Selecteer stad",
 | 
					 | 
				
			||||||
        "street_1": "Straat 1",
 | 
					 | 
				
			||||||
        "street_2": "Straat 2",
 | 
					 | 
				
			||||||
        "action_failed": "Actie mislukt",
 | 
					 | 
				
			||||||
        "sort_by": "sorteer op",
 | 
					 | 
				
			||||||
        "ascending": "Oplopend",
 | 
					 | 
				
			||||||
        "descending": "Aflopend",
 | 
					 | 
				
			||||||
        "subject": "onderwerpen",
 | 
					 | 
				
			||||||
        "message": "Bericht",
 | 
					 | 
				
			||||||
        "test_mail_conf": "Test de e-mailconfiguratie",
 | 
					 | 
				
			||||||
        "send_mail_successfully": "Mail is succesvol verzonden",
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "dashboard": {
 | 
					 | 
				
			||||||
        "select_year": "Selecteer jaar",
 | 
					 | 
				
			||||||
        "cards": {
 | 
					 | 
				
			||||||
            "due_amount": "Verschuldigd bedrag",
 | 
					 | 
				
			||||||
            "customers": "Klanten",
 | 
					 | 
				
			||||||
            "invoices": "Facturen",
 | 
					 | 
				
			||||||
            "estimates": "Offertes"
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "chart_info": {
 | 
					 | 
				
			||||||
            "total_sales": "Verkopen",
 | 
					 | 
				
			||||||
            "total_receipts": "Ontvangen",
 | 
					 | 
				
			||||||
            "total_expense": "Uitgaven",
 | 
					 | 
				
			||||||
            "net_income": "Netto inkomen",
 | 
					 | 
				
			||||||
            "year": "Selecteer jaar"
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "weekly_invoices": {
 | 
					 | 
				
			||||||
            "title": "Wekelijkse facturen"
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "monthly_chart": {
 | 
					 | 
				
			||||||
            "title": "Verkopen & uitgaven"
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "recent_invoices_card": {
 | 
					 | 
				
			||||||
            "title": "Te betalen facturen",
 | 
					 | 
				
			||||||
            "due_on": "Verschuldigd op",
 | 
					 | 
				
			||||||
            "customer": "Klant",
 | 
					 | 
				
			||||||
            "amount_due": "Verschuldigd bedrag",
 | 
					 | 
				
			||||||
            "actions": "Acties",
 | 
					 | 
				
			||||||
            "view_all": "Bekijk alle"
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "recent_estimate_card": {
 | 
					 | 
				
			||||||
            "title": "Recente offertes",
 | 
					 | 
				
			||||||
            "date": "Datum",
 | 
					 | 
				
			||||||
            "customer": "Klant",
 | 
					 | 
				
			||||||
            "amount_due": "Verschuldigd Bedrag",
 | 
					 | 
				
			||||||
            "actions": "Acties",
 | 
					 | 
				
			||||||
            "view_all": "Bekijk alle"
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "tax_types": {
 | 
					 | 
				
			||||||
        "name": "Naam",
 | 
					 | 
				
			||||||
        "description": "Omschrijving",
 | 
					 | 
				
			||||||
        "percent": "Percentage",
 | 
					 | 
				
			||||||
        "compound_tax": "Samengestelde Btw"
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "customers": {
 | 
					 | 
				
			||||||
        "title": "Klanten",
 | 
					 | 
				
			||||||
        "add_customer": "Klant toevoegen",
 | 
					 | 
				
			||||||
        "contacts_list": "Klanten lijst",
 | 
					 | 
				
			||||||
        "name": "Naam",
 | 
					 | 
				
			||||||
        "display_name": "Weergavenaam",
 | 
					 | 
				
			||||||
        "primary_contact_name": "Primaire contactpersoon",
 | 
					 | 
				
			||||||
        "contact_name": "Contact naam",
 | 
					 | 
				
			||||||
        "amount_due": "Verschuldigd Bedrag",
 | 
					 | 
				
			||||||
        "email": "E-mail",
 | 
					 | 
				
			||||||
        "address": "Adres",
 | 
					 | 
				
			||||||
        "phone": "Telefoon",
 | 
					 | 
				
			||||||
        "website": "Website",
 | 
					 | 
				
			||||||
        "country": "Land",
 | 
					 | 
				
			||||||
        "state": "Staat",
 | 
					 | 
				
			||||||
        "city": "Stad",
 | 
					 | 
				
			||||||
        "zip_code": "Postcode",
 | 
					 | 
				
			||||||
        "added_on": "Toegevoegd op",
 | 
					 | 
				
			||||||
        "action": "Actie",
 | 
					 | 
				
			||||||
        "password": "Wachtwoord",
 | 
					 | 
				
			||||||
        "street_number": "Straat nummer",
 | 
					 | 
				
			||||||
        "primary_currency": "Primaire valuta",
 | 
					 | 
				
			||||||
        "add_new_customer": "Nieuwe klant toevoegen",
 | 
					 | 
				
			||||||
        "save_customer": "Klant opslaan",
 | 
					 | 
				
			||||||
        "update_customer": "Klant bewerken",
 | 
					 | 
				
			||||||
        "customer": "Klant | Klanten",
 | 
					 | 
				
			||||||
        "new_customer": "Nieuwe Klant",
 | 
					 | 
				
			||||||
        "edit_customer": "Bewerk Klant",
 | 
					 | 
				
			||||||
        "basic_info": "Basis info",
 | 
					 | 
				
			||||||
        "billing_address": "Facturatieadres",
 | 
					 | 
				
			||||||
        "shipping_address": "Verzendadres",
 | 
					 | 
				
			||||||
        "copy_billing_address": "Kopieer van facturatie",
 | 
					 | 
				
			||||||
        "no_customers": "Nog geen klanten!",
 | 
					 | 
				
			||||||
        "no_customers_found": "Geen klanten gevonden!",
 | 
					 | 
				
			||||||
        "list_of_customers": "Dit gedeelte bevat de lijst van klanten.",
 | 
					 | 
				
			||||||
        "primary_display_name": "Primaire weergavenaam",
 | 
					 | 
				
			||||||
        "select_currency": "Selecteer valuta",
 | 
					 | 
				
			||||||
        "select_a_customer": "Selecteer een klant",
 | 
					 | 
				
			||||||
        "type_or_click": "Typ of klik om te selecteren",
 | 
					 | 
				
			||||||
        "confirm_delete": "Je zal niet in staat zijn om deze klant te herstellen | Je zal niet in staat zijn om deze klanten te herstellen",
 | 
					 | 
				
			||||||
        "created_message": "Klant succesvol aangemaakt",
 | 
					 | 
				
			||||||
        "updated_message": "Klant succesvol bijgewerkt",
 | 
					 | 
				
			||||||
        "deleted_message": "Klant succesvol verwijderd | Klanten succesvol verwijderd"
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "items": {
 | 
					 | 
				
			||||||
        "title": "Artikelen",
 | 
					 | 
				
			||||||
        "items_list": "Artikelen lijst",
 | 
					 | 
				
			||||||
        "name": "Naam",
 | 
					 | 
				
			||||||
        "unit": "Eenheid",
 | 
					 | 
				
			||||||
        "description": "Beschrijving",
 | 
					 | 
				
			||||||
        "added_on": "Toegevoegd op",
 | 
					 | 
				
			||||||
        "price": "Prijs",
 | 
					 | 
				
			||||||
        "date_of_creation": "Datum van aanmaak",
 | 
					 | 
				
			||||||
        "action": "Actie",
 | 
					 | 
				
			||||||
        "add_item": "Artikel toevoegen",
 | 
					 | 
				
			||||||
        "save_item": "Artikel opslaan",
 | 
					 | 
				
			||||||
        "update_item": "Artikel bewerken",
 | 
					 | 
				
			||||||
        "item": "Artikel | Artikels",
 | 
					 | 
				
			||||||
        "add_new_item": "Nieuw artikel toevoegen",
 | 
					 | 
				
			||||||
        "new_item": "Nieuw artikel",
 | 
					 | 
				
			||||||
        "edit_item": "Bewerk artikel",
 | 
					 | 
				
			||||||
        "no_items": "Nog geen artikelen!",
 | 
					 | 
				
			||||||
        "list_of_items": "Dit gedeelte zal de lijst met artikels bevatten.",
 | 
					 | 
				
			||||||
        "select_a_unit": "kies een eenheid",
 | 
					 | 
				
			||||||
        "item_attached_message": "Kan een artikel dat al in gebruik is niet verwijderen",
 | 
					 | 
				
			||||||
        "confirm_delete": "U zult niet in staat zijn om dit artikel terug te krijgen. | U zult niet in staat zijn om deze artikels terug te krijgen.",
 | 
					 | 
				
			||||||
        "created_message": "Artikel succesvol aangemaakt",
 | 
					 | 
				
			||||||
        "updated_message": "Artikel succesvol bijgewerkt",
 | 
					 | 
				
			||||||
        "deleted_message": "Artikel succesvol verwijderd | Artikels succesvol verwijderd",
 | 
					 | 
				
			||||||
        "taxes": "Belastingen",
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "estimates": {
 | 
					 | 
				
			||||||
        "title": "Offertes",
 | 
					 | 
				
			||||||
        "estimate": "Offerte | Offertes",
 | 
					 | 
				
			||||||
        "estimates_list": "Offerte lijst",
 | 
					 | 
				
			||||||
        "days": "{days} Dagen",
 | 
					 | 
				
			||||||
        "months": "{months} Maanden",
 | 
					 | 
				
			||||||
        "years": "{years} Jaren",
 | 
					 | 
				
			||||||
        "all": "Alles",
 | 
					 | 
				
			||||||
        "paid": "Betaald",
 | 
					 | 
				
			||||||
        "unpaid": "Onbetaald",
 | 
					 | 
				
			||||||
        "customer": "KLANT",
 | 
					 | 
				
			||||||
        "ref_no": "REF NR.",
 | 
					 | 
				
			||||||
        "number": "NUMMER",
 | 
					 | 
				
			||||||
        "amount_due": "VERSCHULDIGD BEDRAG",
 | 
					 | 
				
			||||||
        "partially_paid": "Gedeeltelijk betaald",
 | 
					 | 
				
			||||||
        "total": "Totaal",
 | 
					 | 
				
			||||||
        "discount": "Korting",
 | 
					 | 
				
			||||||
        "sub_total": "Subtotaal",
 | 
					 | 
				
			||||||
        "estimate_number": "Offerte Nummer",
 | 
					 | 
				
			||||||
        "ref_number": "Ref. Nummer",
 | 
					 | 
				
			||||||
        "contact": "Contact",
 | 
					 | 
				
			||||||
        "add_item": "Voeg een item toe",
 | 
					 | 
				
			||||||
        "date": "Datum",
 | 
					 | 
				
			||||||
        "due_date": "Vervaldatum",
 | 
					 | 
				
			||||||
        "expiry_date": "Vervaldatum",
 | 
					 | 
				
			||||||
        "status": "Status",
 | 
					 | 
				
			||||||
        "add_tax": "Btw toevoegen",
 | 
					 | 
				
			||||||
        "amount": "Bedrag",
 | 
					 | 
				
			||||||
        "action": "Actie",
 | 
					 | 
				
			||||||
        "notes": "Notitie's",
 | 
					 | 
				
			||||||
        "tax": "Btw",
 | 
					 | 
				
			||||||
        "estimate_template": "Sjabloon",
 | 
					 | 
				
			||||||
        "convert_to_invoice": "Omzetten naar factuur",
 | 
					 | 
				
			||||||
        "mark_as_sent": "Markeer als verzonden",
 | 
					 | 
				
			||||||
        "send_estimate": "Verzend offerte",
 | 
					 | 
				
			||||||
        "record_payment": "Record Payment",
 | 
					 | 
				
			||||||
        "add_estimate": "Offerte toevoegen",
 | 
					 | 
				
			||||||
        "save_estimate": "Offerte opslaan",
 | 
					 | 
				
			||||||
        "confirm_conversion": "Wil je deze offerte omzetten in een factuur?",
 | 
					 | 
				
			||||||
        "conversion_message": "Factuur succesvol aangemaakt",
 | 
					 | 
				
			||||||
        "confirm_send_estimate": "Deze offerte zal verzonden worden via email naar de klant",
 | 
					 | 
				
			||||||
        "confirm_mark_as_sent": "Deze offerte zal gemarkeerd worden als verzonden",
 | 
					 | 
				
			||||||
        "confirm_mark_as_accepted": "Deze offerte zal gemarkeerd worden als geaccepteerd",
 | 
					 | 
				
			||||||
        "confirm_mark_as_rejected": "Deze offerte zal gemarkeerd worden als afgewezen",
 | 
					 | 
				
			||||||
        "no_matching_estimates": "Er zijn geen overeenkomende offertes!",
 | 
					 | 
				
			||||||
        "mark_as_sent_successfully": "Offerte succesvol gemarkeerd als verzonden",
 | 
					 | 
				
			||||||
        "send_estimate_successfully": "Offerte succesvol verzonden",
 | 
					 | 
				
			||||||
        "errors": {
 | 
					 | 
				
			||||||
            "required": "Veld is verplicht"
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "accepted": "Geaccepteerd",
 | 
					 | 
				
			||||||
        "sent": "Verzonden",
 | 
					 | 
				
			||||||
        "draft": "Concept",
 | 
					 | 
				
			||||||
        "declined": "Geweigerd",
 | 
					 | 
				
			||||||
        "new_estimate": "Nieuwe offerte",
 | 
					 | 
				
			||||||
        "add_new_estimate": "Nieuwe offerte toevoegen",
 | 
					 | 
				
			||||||
        "update_Estimate": "Offerte bijwerken",
 | 
					 | 
				
			||||||
        "edit_estimate": "Bewerk offerte",
 | 
					 | 
				
			||||||
        "items": "items",
 | 
					 | 
				
			||||||
        "Estimate": "Offerte | Offertes",
 | 
					 | 
				
			||||||
        "add_new_tax": "Nieuwe Btw toevoegen",
 | 
					 | 
				
			||||||
        "no_estimates": "Nog geen offertes!",
 | 
					 | 
				
			||||||
        "list_of_estimates": "Dit deel bevat de lijst met offertes.",
 | 
					 | 
				
			||||||
        "mark_as_rejected": "Markeer als afgewezen",
 | 
					 | 
				
			||||||
        "mark_as_accepted": "Markeer als geaccepteerd",
 | 
					 | 
				
			||||||
        "marked_as_accepted_message": "Offerte gemarkeerd als geaccepteerd",
 | 
					 | 
				
			||||||
        "marked_as_rejected_message": "Offerte gemarkeerd als afgewezen",
 | 
					 | 
				
			||||||
        "confirm_delete": "U zult niet in staat zijn om deze offerte te herstellen. | U zult niet in staat zijn om deze offertes te herstellen.",
 | 
					 | 
				
			||||||
        "created_message": "Offerte succesvol aangemaakt",
 | 
					 | 
				
			||||||
        "updated_message": "Offerte succesvol bijgewerkt",
 | 
					 | 
				
			||||||
        "deleted_message": "Offerte succesvol verwijderd | Offertes succesvol verwijderd",
 | 
					 | 
				
			||||||
        "user_email_does_not_exist": "E-mail van de gebruiker bestaat niet",
 | 
					 | 
				
			||||||
        "something_went_wrong": "er ging iets mis",
 | 
					 | 
				
			||||||
        "item": {
 | 
					 | 
				
			||||||
            "title": "Artikel titel",
 | 
					 | 
				
			||||||
            "description": "Omschrijving",
 | 
					 | 
				
			||||||
            "quantity": "Aantal",
 | 
					 | 
				
			||||||
            "price": "Prijs",
 | 
					 | 
				
			||||||
            "discount": "Korting",
 | 
					 | 
				
			||||||
            "total": "Totaal",
 | 
					 | 
				
			||||||
            "total_discount": "Totale korting",
 | 
					 | 
				
			||||||
            "sub_total": "Subtotaal",
 | 
					 | 
				
			||||||
            "tax": "Btw",
 | 
					 | 
				
			||||||
            "amount": "Bedrag",
 | 
					 | 
				
			||||||
            "select_an_item": "Typ of klik om te selecteren",
 | 
					 | 
				
			||||||
            "type_item_description": "Type Artikel Omschrijving (optioneel)"
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "invoices": {
 | 
					 | 
				
			||||||
        "title": "Facturen",
 | 
					 | 
				
			||||||
        "invoices_list": "Facturen Lijst",
 | 
					 | 
				
			||||||
        "days": "{days} Dagen",
 | 
					 | 
				
			||||||
        "months": "{months} Maanden",
 | 
					 | 
				
			||||||
        "years": "{years} Jaren",
 | 
					 | 
				
			||||||
        "all": "Alle",
 | 
					 | 
				
			||||||
        "paid": "Betaald",
 | 
					 | 
				
			||||||
        "unpaid": "Onbetaald",
 | 
					 | 
				
			||||||
        "customer": "KLANT",
 | 
					 | 
				
			||||||
        "paid_status": "BETAALD STATUS",
 | 
					 | 
				
			||||||
        "ref_no": "REF NR.",
 | 
					 | 
				
			||||||
        "number": "NUMMER",
 | 
					 | 
				
			||||||
        "amount_due": "BEDRAG VERSCHULDIGD",
 | 
					 | 
				
			||||||
        "partially_paid": "Gedeeltelijk betaald",
 | 
					 | 
				
			||||||
        "total": "Totaal",
 | 
					 | 
				
			||||||
        "discount": "Korting",
 | 
					 | 
				
			||||||
        "sub_total": "Subtotaal",
 | 
					 | 
				
			||||||
        "invoice": "Factuur | Facturen",
 | 
					 | 
				
			||||||
        "invoice_number": "Factuurnummer",
 | 
					 | 
				
			||||||
        "ref_number": "Ref. Nummer",
 | 
					 | 
				
			||||||
        "contact": "Contact",
 | 
					 | 
				
			||||||
        "add_item": "Artikel toevoegen",
 | 
					 | 
				
			||||||
        "date": "Datum",
 | 
					 | 
				
			||||||
        "due_date": "Vervaldatum",
 | 
					 | 
				
			||||||
        "status": "Status",
 | 
					 | 
				
			||||||
        "add_tax": "Add Btw",
 | 
					 | 
				
			||||||
        "amount": "Bedrag",
 | 
					 | 
				
			||||||
        "action": "Actie",
 | 
					 | 
				
			||||||
        "notes": "Notie's",
 | 
					 | 
				
			||||||
        "view": "Bekijk",
 | 
					 | 
				
			||||||
        "send_invoice": "Verstuur Factuur",
 | 
					 | 
				
			||||||
        "invoice_template": "Factuur Sjabloon",
 | 
					 | 
				
			||||||
        "template": "Sjabloon",
 | 
					 | 
				
			||||||
        "mark_as_sent": "Markeer als verzonden",
 | 
					 | 
				
			||||||
        "confirm_send_invoice": "Deze factuur wordt per e-mail naar de klant gestuurd",
 | 
					 | 
				
			||||||
        "invoice_mark_as_sent": "Deze factuur wordt gemarkeerd als verzonden",
 | 
					 | 
				
			||||||
        "confirm_send": "Deze factuur wordt per e-mail naar de klant gestuurd",
 | 
					 | 
				
			||||||
        "invoice_date": "Factuurdatum",
 | 
					 | 
				
			||||||
        "record_payment": "Record Payment",
 | 
					 | 
				
			||||||
        "add_new_invoice": "Nieuwe factuur toevoegen",
 | 
					 | 
				
			||||||
        "update_expense": "Bewerk Uitgaven",
 | 
					 | 
				
			||||||
        "edit_invoice": "Bewerk Factuur",
 | 
					 | 
				
			||||||
        "new_invoice": "Nieuw Factuur",
 | 
					 | 
				
			||||||
        "save_invoice": "Factuur opslaan",
 | 
					 | 
				
			||||||
        "update_invoice": "Bewerk Factuur",
 | 
					 | 
				
			||||||
        "add_new_tax": "Nieuwe Btw toevoegen",
 | 
					 | 
				
			||||||
        "no_invoices": "Nog geen facturen!",
 | 
					 | 
				
			||||||
        "list_of_invoices": "Dit gedeelte bevat de lijst met facturen.",
 | 
					 | 
				
			||||||
        "select_invoice": "Selecteer factuur",
 | 
					 | 
				
			||||||
        "no_matching_invoices": "Er zijn geen overeenkomstige facturen!",
 | 
					 | 
				
			||||||
        "mark_as_sent_successfully": "Factuur succesvol gemarkeerd als verzonden",
 | 
					 | 
				
			||||||
        "send_invoice_successfully": "Factuur succesvol verzonden",
 | 
					 | 
				
			||||||
        "item": {
 | 
					 | 
				
			||||||
            "title": "Artikel titel",
 | 
					 | 
				
			||||||
            "description": "Omschrijving",
 | 
					 | 
				
			||||||
            "quantity": "Aantal",
 | 
					 | 
				
			||||||
            "price": "Prijs",
 | 
					 | 
				
			||||||
            "discount": "Korting",
 | 
					 | 
				
			||||||
            "total": "Totaal",
 | 
					 | 
				
			||||||
            "total_discount": "Totale korting",
 | 
					 | 
				
			||||||
            "sub_total": "Subtotaal",
 | 
					 | 
				
			||||||
            "tax": "Btw",
 | 
					 | 
				
			||||||
            "amount": "Bedrag",
 | 
					 | 
				
			||||||
            "select_an_item": "Typ of klik om te selecteren",
 | 
					 | 
				
			||||||
            "type_item_description": "Type Artikel omschrijving (optioneel)"
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "payment_attached_message": "Een van de geselecteerde facturen is al aan een betaling gekoppeld. Zorg ervoor dat u de bijgevoegde betalingen eerst verwijderd om door te kunnen gaan met de verwijdering.",
 | 
					 | 
				
			||||||
        "confirm_delete": "U zult deze factuur niet kunnen herstellen | U zult deze facturen niet kunnen herstellen",
 | 
					 | 
				
			||||||
        "created_message": "Factuur succesvol aangemaakt ",
 | 
					 | 
				
			||||||
        "updated_message": "Factuur succesvol bijgewerkt ",
 | 
					 | 
				
			||||||
        "deleted_message": "Factuur succesvol verwijderd | Facturen succesvol verwijderd",
 | 
					 | 
				
			||||||
        "marked_as_sent_message": "Factuur succesvol gemarkeerd als verzonden",
 | 
					 | 
				
			||||||
        "user_email_does_not_exist": "E-mail van de gebruiker bestaat niet",
 | 
					 | 
				
			||||||
        "something_went_wrong": "er ging iets mis",
 | 
					 | 
				
			||||||
        "invalid_due_amount_message": "Het totale factuurbedrag kan niet lager zijn dan het totale betaalde bedrag voor deze factuur. Gelieve de factuur bij te werken of de bijhorende betalingen te verwijderen om verder te kunnen gaan.",
 | 
					 | 
				
			||||||
        "cloned_successfully": "Factuur succesvol gekloond",
 | 
					 | 
				
			||||||
        "clone_invoice": "Factuur klonen",
 | 
					 | 
				
			||||||
        "confirm_clone": "Deze factuur wordt gekloond in een nieuwe factuur",
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "credit_notes": {
 | 
					 | 
				
			||||||
        "title": "Creditnota's",
 | 
					 | 
				
			||||||
        "credit_notes_list": "Creditnota's lijst",
 | 
					 | 
				
			||||||
        "credit_notes": "Creditnota's",
 | 
					 | 
				
			||||||
        "contact": "Contact",
 | 
					 | 
				
			||||||
        "date": "Datum",
 | 
					 | 
				
			||||||
        "amount": "Bedrag",
 | 
					 | 
				
			||||||
        "action": "Actie",
 | 
					 | 
				
			||||||
        "credit_number": "Credit Nummer",
 | 
					 | 
				
			||||||
        "notes": "Notie's",
 | 
					 | 
				
			||||||
        "confirm_delete": "Wil je deze Creditnota verwijderen?",
 | 
					 | 
				
			||||||
        "item": {
 | 
					 | 
				
			||||||
            "title": "Artikel titel",
 | 
					 | 
				
			||||||
            "description": "Omschrijving",
 | 
					 | 
				
			||||||
            "quantity": "Aantal",
 | 
					 | 
				
			||||||
            "price": "Prijs",
 | 
					 | 
				
			||||||
            "discount": "Korting",
 | 
					 | 
				
			||||||
            "total": "Totaal",
 | 
					 | 
				
			||||||
            "total_discount": "Totale korting",
 | 
					 | 
				
			||||||
            "sub_total": "Subtotaal",
 | 
					 | 
				
			||||||
            "tax": "Btw"
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "payments": {
 | 
					 | 
				
			||||||
        "title": "Betalingen",
 | 
					 | 
				
			||||||
        "payments_list": "Betalingen lijst",
 | 
					 | 
				
			||||||
        "record_payment": "Record Betaling",
 | 
					 | 
				
			||||||
        "customer": "Klant",
 | 
					 | 
				
			||||||
        "date": "Datum",
 | 
					 | 
				
			||||||
        "amount": "Bedrag",
 | 
					 | 
				
			||||||
        "action": "Actie",
 | 
					 | 
				
			||||||
        "payment_number": "betaling Nummer",
 | 
					 | 
				
			||||||
        "payment_mode": "Betalingswijze",
 | 
					 | 
				
			||||||
        "invoice": "Factuur",
 | 
					 | 
				
			||||||
        "note": "Notitie",
 | 
					 | 
				
			||||||
        "add_payment": "Betaling toevoegen",
 | 
					 | 
				
			||||||
        "new_payment": "Nieuwe betaling",
 | 
					 | 
				
			||||||
        "edit_payment": "Betaling bewerken",
 | 
					 | 
				
			||||||
        "view_payment": "Betaling bekijken",
 | 
					 | 
				
			||||||
        "add_new_payment": "Nieuwe betaling toevoegen",
 | 
					 | 
				
			||||||
        "save_payment": "Betaling opslaan",
 | 
					 | 
				
			||||||
        "update_payment": "Betaling bewerken",
 | 
					 | 
				
			||||||
        "payment": "Betaling | Betalingen",
 | 
					 | 
				
			||||||
        "no_payments": "Nog geen betalingen!",
 | 
					 | 
				
			||||||
        "list_of_payments": "Dit gedeelte bevat de lijst met betalingen.",
 | 
					 | 
				
			||||||
        "select_payment_mode": "Selecteer betalingswijze",
 | 
					 | 
				
			||||||
        "confirm_delete": "U zult deze betaling niet kunnen herstellen | U zult deze betalingen niet kunnen herstellen",
 | 
					 | 
				
			||||||
        "created_message": "Betaling succesvol aangemaakt",
 | 
					 | 
				
			||||||
        "updated_message": "Betaling succesvol bijgewerkt",
 | 
					 | 
				
			||||||
        "deleted_message": "Betaling succesvol verwijderd | Betalingen succesvol verwijderd",
 | 
					 | 
				
			||||||
        "invalid_amount_message": "Betalingsbedrag is ongeldig",
 | 
					 | 
				
			||||||
        "send_payment_receipt": "Betaalbewijs verzenden",
 | 
					 | 
				
			||||||
        "confirm_send_payment": "Deze betaling wordt via e-mail naar de klant gestuurd",
 | 
					 | 
				
			||||||
        "send_payment_successfully": "Betaling succesvol verzonden",
 | 
					 | 
				
			||||||
        "user_email_does_not_exist": "E-mailadres van gebruiker bestaat niet",
 | 
					 | 
				
			||||||
        "something_went_wrong": "Er is iets fout gegaan",
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "expenses": {
 | 
					 | 
				
			||||||
        "title": "Uitgaven",
 | 
					 | 
				
			||||||
        "expenses_list": "Uitgaven lijst",
 | 
					 | 
				
			||||||
        "expense_title": "Titel",
 | 
					 | 
				
			||||||
        "contact": "Contact",
 | 
					 | 
				
			||||||
        "category": "Categorie",
 | 
					 | 
				
			||||||
        "from_date": "Van Datum",
 | 
					 | 
				
			||||||
        "to_date": "Tot Datum",
 | 
					 | 
				
			||||||
        "expense_date": "Datum",
 | 
					 | 
				
			||||||
        "description": "Omschrijving",
 | 
					 | 
				
			||||||
        "receipt": "Bewijs",
 | 
					 | 
				
			||||||
        "amount": "Bedrag",
 | 
					 | 
				
			||||||
        "action": "Actie",
 | 
					 | 
				
			||||||
        "note": "Notitie",
 | 
					 | 
				
			||||||
        "category_id": "Categorie Id",
 | 
					 | 
				
			||||||
        "date": "Uitgave datum",
 | 
					 | 
				
			||||||
        "add_expense": "Uitgave toevoegen",
 | 
					 | 
				
			||||||
        "add_new_expense": "Nieuwe uitgave toevoegen",
 | 
					 | 
				
			||||||
        "save_expense": "Uitgave opslaan",
 | 
					 | 
				
			||||||
        "update_expense": "Uitgave bewerken",
 | 
					 | 
				
			||||||
        "download_receipt": "Download Bewijs",
 | 
					 | 
				
			||||||
        "edit_expense": "Bewerk uitgave",
 | 
					 | 
				
			||||||
        "new_expense": "Nieuwe uitgave",
 | 
					 | 
				
			||||||
        "expense": "Uitgave | Uitgaven",
 | 
					 | 
				
			||||||
        "no_expenses": "Nog geen uitgaven!",
 | 
					 | 
				
			||||||
        "list_of_expenses": "Dit gedeelte bevat de lijst met uitgaven.",
 | 
					 | 
				
			||||||
        "confirm_delete": "U zult niet in staat zijn om deze uitgave te herstellen | U zult niet in staat zijn om deze uitgaven te herstellen",
 | 
					 | 
				
			||||||
        "created_message": "Uitgave succesvol aangemaakt",
 | 
					 | 
				
			||||||
        "updated_message": "Uitgave succesvol bijgewerkt",
 | 
					 | 
				
			||||||
        "deleted_message": "Uitgave succesvol verwijderd | Uitgaven succesvol verwijderd",
 | 
					 | 
				
			||||||
        "select_a_customer": "Selecteer een klant",
 | 
					 | 
				
			||||||
        "customer": "Klanten",
 | 
					 | 
				
			||||||
        "categories": {
 | 
					 | 
				
			||||||
            "categories_list": "Categories Lijst",
 | 
					 | 
				
			||||||
            "title": "Titel",
 | 
					 | 
				
			||||||
            "name": "Naam",
 | 
					 | 
				
			||||||
            "description": "Omschrijving",
 | 
					 | 
				
			||||||
            "amount": "Bedrag",
 | 
					 | 
				
			||||||
            "actions": "Acties",
 | 
					 | 
				
			||||||
            "add_category": "Categorie toevoegen",
 | 
					 | 
				
			||||||
            "new_category": "Nieuwe categorie",
 | 
					 | 
				
			||||||
            "category": "Categorie | Categorieën",
 | 
					 | 
				
			||||||
            "select_a_category": "Selecteer een categorie"
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "login": {
 | 
					 | 
				
			||||||
        "email": "E-mail",
 | 
					 | 
				
			||||||
        "password": "Wachtwoord",
 | 
					 | 
				
			||||||
        "forgot_password": "Wachtwoord vergeten?",
 | 
					 | 
				
			||||||
        "or_signIn_with": "of aanmelden met",
 | 
					 | 
				
			||||||
        "login": "Aanmelden",
 | 
					 | 
				
			||||||
        "register": "Registreer",
 | 
					 | 
				
			||||||
        "reset_password": "Wachtwoord resetten",
 | 
					 | 
				
			||||||
        "password_reset_successfully": "Wachtwoord succesvol gereset",
 | 
					 | 
				
			||||||
        "enter_email": "Voer e-mail in",
 | 
					 | 
				
			||||||
        "enter_password": "Voer wachtwoord in",
 | 
					 | 
				
			||||||
        "retype_password": "Herhaal wachtwoord",
 | 
					 | 
				
			||||||
        "login_placeholder": "mail@example.com"
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "reports": {
 | 
					 | 
				
			||||||
        "title": "Rapport",
 | 
					 | 
				
			||||||
        "from_date": "Van Datum",
 | 
					 | 
				
			||||||
        "to_date": "Tot Datum",
 | 
					 | 
				
			||||||
        "status": "Status",
 | 
					 | 
				
			||||||
        "paid": "Betaald",
 | 
					 | 
				
			||||||
        "unpaid": "Onbetaald",
 | 
					 | 
				
			||||||
        "download_pdf": "Download PDF",
 | 
					 | 
				
			||||||
        "view_pdf": "Bekijk PDF",
 | 
					 | 
				
			||||||
        "update_report": "Bewerk Rapport",
 | 
					 | 
				
			||||||
        "report": "Rapport | Rapporten",
 | 
					 | 
				
			||||||
        "profit_loss": {
 | 
					 | 
				
			||||||
            "profit_loss": "Winst & Verlies",
 | 
					 | 
				
			||||||
            "to_date": "Tot Datum",
 | 
					 | 
				
			||||||
            "from_date": "Van Datum",
 | 
					 | 
				
			||||||
            "date_range": "Selecteer Datumbereik"
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "sales": {
 | 
					 | 
				
			||||||
            "sales": "Verkopen",
 | 
					 | 
				
			||||||
            "date_range": "Selecteer Datumbereik",
 | 
					 | 
				
			||||||
            "to_date": "Tot Datum",
 | 
					 | 
				
			||||||
            "from_date": "Van Datum",
 | 
					 | 
				
			||||||
            "report_type": "Rapport Type"
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "taxes": {
 | 
					 | 
				
			||||||
            "taxes": "BTW",
 | 
					 | 
				
			||||||
            "to_date": "Tot Datum",
 | 
					 | 
				
			||||||
            "from_date": "Van Datum",
 | 
					 | 
				
			||||||
            "date_range": "Selecteer Datumbereik"
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "errors": {
 | 
					 | 
				
			||||||
            "required": "Veld is verplicht"
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "invoices": {
 | 
					 | 
				
			||||||
            "invoice": "Factuur",
 | 
					 | 
				
			||||||
            "invoice_date": "Factuurdatum",
 | 
					 | 
				
			||||||
            "due_date": "Vervaldatum",
 | 
					 | 
				
			||||||
            "amount": "Bedrag",
 | 
					 | 
				
			||||||
            "contact_name": "Naam contactpersoon",
 | 
					 | 
				
			||||||
            "status": "Status"
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "estimates": {
 | 
					 | 
				
			||||||
            "estimate": "Offerte",
 | 
					 | 
				
			||||||
            "estimate_date": "Offertedatum",
 | 
					 | 
				
			||||||
            "due_date": "Vervaldatum",
 | 
					 | 
				
			||||||
            "estimate_number": "Offerte nummer",
 | 
					 | 
				
			||||||
            "ref_number": "Ref. Nummer",
 | 
					 | 
				
			||||||
            "amount": "Bedrag",
 | 
					 | 
				
			||||||
            "contact_name": "Naam contactpersoon",
 | 
					 | 
				
			||||||
            "status": "Status"
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "expenses": {
 | 
					 | 
				
			||||||
            "expenses": "Uitgaven",
 | 
					 | 
				
			||||||
            "category": "Categorie",
 | 
					 | 
				
			||||||
            "date": "Datum",
 | 
					 | 
				
			||||||
            "amount": "Bedrag",
 | 
					 | 
				
			||||||
            "to_date": "Tot Datum",
 | 
					 | 
				
			||||||
            "from_date": "Van Datum",
 | 
					 | 
				
			||||||
            "date_range": "Selecteer Datumbereik"
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "settings": {
 | 
					 | 
				
			||||||
        "items": {
 | 
					 | 
				
			||||||
            "title": "Artikelen",
 | 
					 | 
				
			||||||
            "units": "eenheden",
 | 
					 | 
				
			||||||
            "add_item_unit": "Itemeenheid toevoegen",
 | 
					 | 
				
			||||||
            "unit_name": "Naam eenheid",
 | 
					 | 
				
			||||||
            "item_unit_added": "Item Unit toegevoegd",
 | 
					 | 
				
			||||||
            "item_unit_updated": "Artikeleenheid geüpdatet",
 | 
					 | 
				
			||||||
            "item_unit_confirm_delete": "U kunt dit item niet terughalen",
 | 
					 | 
				
			||||||
            "already_in_use": "Item Unit is al in gebruik",
 | 
					 | 
				
			||||||
            "deleted_message": "Artikeleenheid succesvol verwijderd"
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "menu_title": {
 | 
					 | 
				
			||||||
            "account_settings": "Account Instellingen",
 | 
					 | 
				
			||||||
            "company_information": "Bedrijfsinformatie",
 | 
					 | 
				
			||||||
            "customization": "Customizatie",
 | 
					 | 
				
			||||||
            "preferences": "Voorkeuren",
 | 
					 | 
				
			||||||
            "notifications": "Notificaties",
 | 
					 | 
				
			||||||
            "tax_types": "Btw Types",
 | 
					 | 
				
			||||||
            "expense_category": "Uitgave Categories",
 | 
					 | 
				
			||||||
            "update_app": "Bewerk App"
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "title": "Instellingen",
 | 
					 | 
				
			||||||
        "setting": "Instellingen | Instellingen",
 | 
					 | 
				
			||||||
        "general": "Algemeen",
 | 
					 | 
				
			||||||
        "language": "Taal",
 | 
					 | 
				
			||||||
        "primary_currency": "Primaire valuta",
 | 
					 | 
				
			||||||
        "timezone": "Tijdszone",
 | 
					 | 
				
			||||||
        "date_format": "Datum formaat",
 | 
					 | 
				
			||||||
        "currencies": {
 | 
					 | 
				
			||||||
            "title": "Valuta's",
 | 
					 | 
				
			||||||
            "currency": "Valuta | Valuta's",
 | 
					 | 
				
			||||||
            "currencies_list": "Valuta's lijst",
 | 
					 | 
				
			||||||
            "select_currency": "Selecteer Valuta",
 | 
					 | 
				
			||||||
            "name": "Naam",
 | 
					 | 
				
			||||||
            "code": "Code",
 | 
					 | 
				
			||||||
            "symbol": "Symbool",
 | 
					 | 
				
			||||||
            "precision": "Precisie",
 | 
					 | 
				
			||||||
            "thousand_separator": "Thousand Separator",
 | 
					 | 
				
			||||||
            "decimal_separator": "Decimal Separator",
 | 
					 | 
				
			||||||
            "position": "Positie",
 | 
					 | 
				
			||||||
            "position_of_symbol": "Positie van symbool",
 | 
					 | 
				
			||||||
            "right": "Rechts",
 | 
					 | 
				
			||||||
            "left": "Links",
 | 
					 | 
				
			||||||
            "action": "Actie",
 | 
					 | 
				
			||||||
            "add_currency": "Valuta toevoegen"
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "mail": {
 | 
					 | 
				
			||||||
            "host": "Mail Host",
 | 
					 | 
				
			||||||
            "port": "Mail Port",
 | 
					 | 
				
			||||||
            "driver": "Mail Driver",
 | 
					 | 
				
			||||||
            "secret": "Geheim",
 | 
					 | 
				
			||||||
            "mailgun_secret": "Mailgun Geheim",
 | 
					 | 
				
			||||||
            "mailgun_domain": "Domein",
 | 
					 | 
				
			||||||
            "mailgun_endpoint": "Mailgun Endpoint",
 | 
					 | 
				
			||||||
            "ses_secret": "SES Secret",
 | 
					 | 
				
			||||||
            "ses_key": "SES Key",
 | 
					 | 
				
			||||||
            "password": "Mail Wachtwoord",
 | 
					 | 
				
			||||||
            "username": "Mail Gebruikersnaam",
 | 
					 | 
				
			||||||
            "mail_config": "Mail configuratie",
 | 
					 | 
				
			||||||
            "from_name": "Van Mail Naam",
 | 
					 | 
				
			||||||
            "from_mail": "Van Mail Adres",
 | 
					 | 
				
			||||||
            "encryption": "Mail Encryptie",
 | 
					 | 
				
			||||||
            "mail_config_desc": "Hieronder vindt u het formulier voor het configureren van het e-mailstuurprogramma voor het verzenden van e-mails vanuit de app. U kunt ook externe leveranciers zoals Sendgrid, SES etc. configureren."
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "pdf": {
 | 
					 | 
				
			||||||
            "title": "PDF Instellingen",
 | 
					 | 
				
			||||||
            "footer_text": "Voettekst",
 | 
					 | 
				
			||||||
            "pdf_layout": "PDF Layout"
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "company_info": {
 | 
					 | 
				
			||||||
            "company_info": "Bedrijfsinformatie",
 | 
					 | 
				
			||||||
            "company_name": "Bedrijfsnaam",
 | 
					 | 
				
			||||||
            "company_logo": "bedrijfslogo",
 | 
					 | 
				
			||||||
            "section_description": "Informatie over uw bedrijf die zal worden weergegeven op facturen, offertes en andere documenten gemaakt door Crater.",
 | 
					 | 
				
			||||||
            "phone": "Telefoon",
 | 
					 | 
				
			||||||
            "country": "Land",
 | 
					 | 
				
			||||||
            "state": "Staat",
 | 
					 | 
				
			||||||
            "city": "Stad",
 | 
					 | 
				
			||||||
            "address": "Adres",
 | 
					 | 
				
			||||||
            "zip": "Postcode",
 | 
					 | 
				
			||||||
            "save": "Opslaan",
 | 
					 | 
				
			||||||
            "updated_message": "Bedrijfsinformatie succesvol bijgewerkt"
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "customization": {
 | 
					 | 
				
			||||||
            "customization": "Customizatie",
 | 
					 | 
				
			||||||
            "save": "Opslaan",
 | 
					 | 
				
			||||||
            "addresses": {
 | 
					 | 
				
			||||||
                "title": "Adressen",
 | 
					 | 
				
			||||||
                "section_description": "U kan het formaat Klant Factuuradres en Klant Leveradres instellen (Alleen weergegeven in PDF). ",
 | 
					 | 
				
			||||||
                "customer_billing_address": "Factuuradres van de klant",
 | 
					 | 
				
			||||||
                "customer_shipping_address": "Verzendadres van de klant",
 | 
					 | 
				
			||||||
                "company_address": "Bedrijfsadres",
 | 
					 | 
				
			||||||
                "insert_fields": "Velden invoegen",
 | 
					 | 
				
			||||||
                "contact": "Contactpersoon",
 | 
					 | 
				
			||||||
                "address": "Adres",
 | 
					 | 
				
			||||||
                "display_name": "Weergavenaam",
 | 
					 | 
				
			||||||
                "primary_contact_name": "Primair contactpersoon naam",
 | 
					 | 
				
			||||||
                "email": "E-mail",
 | 
					 | 
				
			||||||
                "website": "Website",
 | 
					 | 
				
			||||||
                "name": "Naam",
 | 
					 | 
				
			||||||
                "country": "Land",
 | 
					 | 
				
			||||||
                "state": "Staat",
 | 
					 | 
				
			||||||
                "city": "Stad",
 | 
					 | 
				
			||||||
                "company_name": "Bedrijfsnaam",
 | 
					 | 
				
			||||||
                "address_street_1": "Adres straat 1",
 | 
					 | 
				
			||||||
                "address_street_2": "Adres straat 2",
 | 
					 | 
				
			||||||
                "phone": "Telefoon",
 | 
					 | 
				
			||||||
                "zip_code": "Postcode",
 | 
					 | 
				
			||||||
                "address_setting_updated": "Adres instellingen succesvol bijgewerkt"
 | 
					 | 
				
			||||||
            },
 | 
					 | 
				
			||||||
            "updated_message": "Adres informatie succesvol bijgewerkt",
 | 
					 | 
				
			||||||
            "invoices": {
 | 
					 | 
				
			||||||
                "title": "Facturen",
 | 
					 | 
				
			||||||
                "notes": "Notie's",
 | 
					 | 
				
			||||||
                "invoice_prefix": "Factuur Prefix",
 | 
					 | 
				
			||||||
                "invoice_settings": "Factuur instellingen",
 | 
					 | 
				
			||||||
                "autogenerate_invoice_number": "Autogenereer Factuurnummer",
 | 
					 | 
				
			||||||
                "invoice_setting_description": "Schakel dit uit, Als u niet elke keer dat u een nieuwe factuur aanmaakt automatisch factuurnummers wilt genereren.",
 | 
					 | 
				
			||||||
                "enter_invoice_prefix": "Voer factuur prefix in",
 | 
					 | 
				
			||||||
                "terms_and_conditions": "Algemene voorwaarden",
 | 
					 | 
				
			||||||
                "invoice_setting_updated": "Factuur instellingen succesvol bijgewerkt"
 | 
					 | 
				
			||||||
            },
 | 
					 | 
				
			||||||
            "estimates": {
 | 
					 | 
				
			||||||
                "title": "Offertes",
 | 
					 | 
				
			||||||
                "estimate_prefix": "Offerte Prefix",
 | 
					 | 
				
			||||||
                "estimate_settings": "Offerte instellingen",
 | 
					 | 
				
			||||||
                "autogenerate_estimate_number": "Autogenereer offertenummer",
 | 
					 | 
				
			||||||
                "estimate_setting_description": "Schakel dit uit, Als u niet elke keer dat u een nieuwe offerte aanmaakt automatisch offertenummers wilt genereren.",
 | 
					 | 
				
			||||||
                "enter_estimate_prefix": "Voer offerte prefix in",
 | 
					 | 
				
			||||||
                "estimate_setting_updated": "Offerte instellingen succesvol bijgewerkt"
 | 
					 | 
				
			||||||
            },
 | 
					 | 
				
			||||||
            "payments": {
 | 
					 | 
				
			||||||
                "title": "Betalingen",
 | 
					 | 
				
			||||||
                "payment_prefix": "Betaling Prefix",
 | 
					 | 
				
			||||||
                "payment_settings": "Betalingsinstellingen",
 | 
					 | 
				
			||||||
                "autogenerate_payment_number": "Autogenereer betalingsnummer",
 | 
					 | 
				
			||||||
                "payment_setting_description": "Schakel dit uit, Als u niet elke keer dat u een nieuwe betaling aanmaakt automatisch betalingsnummers wilt genereren.",
 | 
					 | 
				
			||||||
                "enter_payment_prefix": "Voer betaling prefix in",
 | 
					 | 
				
			||||||
                "payment_setting_updated": "Betaling instellingen succesvol bijgewerkt",
 | 
					 | 
				
			||||||
                "payment_mode": "Betalingsmiddel",
 | 
					 | 
				
			||||||
                "add_payment_mode": "Betaalmodus toevoegen",
 | 
					 | 
				
			||||||
                "mode_name": "Mode Name",
 | 
					 | 
				
			||||||
                "payment_mode_added": "Betaalmethode toegevoegd",
 | 
					 | 
				
			||||||
                "payment_mode_updated": "Betalingsmodus geüpdatet",
 | 
					 | 
				
			||||||
                "payment_mode_confirm_delete": "U kunt deze betalingsmodus niet herstellen",
 | 
					 | 
				
			||||||
                "already_in_use": "De betalingsmodus is al in gebruik",
 | 
					 | 
				
			||||||
                "deleted_message": "Betaalmethode succesvol verwijderd"
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "account_settings": {
 | 
					 | 
				
			||||||
            "profile_picture": "Profielfoto",
 | 
					 | 
				
			||||||
            "name": "Naam",
 | 
					 | 
				
			||||||
            "email": "E-mail",
 | 
					 | 
				
			||||||
            "password": "Wachtwoord",
 | 
					 | 
				
			||||||
            "confirm_password": "Bevestig wachtwoord",
 | 
					 | 
				
			||||||
            "account_settings": "Account Instellingen",
 | 
					 | 
				
			||||||
            "save": "Opslaan",
 | 
					 | 
				
			||||||
            "section_description": "U kunt uw naam, e-mail en wachtwoord updaten met behulp van het onderstaande formulier.",
 | 
					 | 
				
			||||||
            "updated_message": "Account instellingen succesvol bijgewerkt"
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "user_profile": {
 | 
					 | 
				
			||||||
            "name": "Naam",
 | 
					 | 
				
			||||||
            "email": "E-mail",
 | 
					 | 
				
			||||||
            "password": "Wachtwoord",
 | 
					 | 
				
			||||||
            "confirm_password": "Bevestig wachtwoord"
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "notification": {
 | 
					 | 
				
			||||||
            "title": "Notificatie",
 | 
					 | 
				
			||||||
            "email": "Zend notificatie naar",
 | 
					 | 
				
			||||||
            "description": "Welke e-mailmeldingen wilt u ontvangen als er iets verandert?",
 | 
					 | 
				
			||||||
            "invoice_viewed": "Factuur bekeken",
 | 
					 | 
				
			||||||
            "invoice_viewed_desc": "Wanneer uw klant de factuur bekijkt die via het Crater dashboard is verstuurd.",
 | 
					 | 
				
			||||||
            "estimate_viewed": "Offerte bekeken",
 | 
					 | 
				
			||||||
            "estimate_viewed_desc": "Wanneer uw klant de offerte bekijkt die via het Crater dashboard is verstuurd.",
 | 
					 | 
				
			||||||
            "save": "Opslaan",
 | 
					 | 
				
			||||||
            "email_save_message": "E-mail succesvol opgeslaan",
 | 
					 | 
				
			||||||
            "please_enter_email": "Vul a.u.b. e-mail in"
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "tax_types": {
 | 
					 | 
				
			||||||
            "title": "Btw Types",
 | 
					 | 
				
			||||||
            "add_tax": "Add Btw",
 | 
					 | 
				
			||||||
            "description": "U kunt naar keuze btw toevoegen of verwijderen. Crater ondersteunt btw op individuele items en op de factuur.",
 | 
					 | 
				
			||||||
            "add_new_tax": "Nieuwe Btw toevoegen",
 | 
					 | 
				
			||||||
            "tax_settings": "Btw instellingen",
 | 
					 | 
				
			||||||
            "tax_per_item": "Btw per artikel",
 | 
					 | 
				
			||||||
            "tax_name": "Btw naam",
 | 
					 | 
				
			||||||
            "compound_tax": "Samengestelde btw",
 | 
					 | 
				
			||||||
            "percent": "Percentage",
 | 
					 | 
				
			||||||
            "action": "Actie",
 | 
					 | 
				
			||||||
            "tax_setting_description": "Schakel dit in als u btw wilt toevoegen aan individuele factuurposten. Standaard worden de belastingen direct aan de factuur toegevoegd.",
 | 
					 | 
				
			||||||
            "created_message": "btw type succesvol aangemaakt",
 | 
					 | 
				
			||||||
            "updated_message": "btw type succesvol bijgewerkt",
 | 
					 | 
				
			||||||
            "deleted_message": "btw type succesvol verwijderd",
 | 
					 | 
				
			||||||
            "confirm_delete": "U zult niet in staat zjin om dit btw type te herstellen",
 | 
					 | 
				
			||||||
            "already_in_use": "Btw al in gebruik"
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "expense_category": {
 | 
					 | 
				
			||||||
            "title": "Uitgavencategorieën",
 | 
					 | 
				
			||||||
            "action": "Actie",
 | 
					 | 
				
			||||||
            "description": "Voor het toevoegen van uitgavenposten zijn categorieën vereist. U kunt deze categorieën naar keuze toevoegen of verwijderen.",
 | 
					 | 
				
			||||||
            "add_new_category": "Nieuwe categorie toevoegen",
 | 
					 | 
				
			||||||
            "category_name": "Categorienaam",
 | 
					 | 
				
			||||||
            "category_description": "Omschrijving",
 | 
					 | 
				
			||||||
            "created_message": "Uitgavencategorie succesvol aangemaakt",
 | 
					 | 
				
			||||||
            "deleted_message": "Uitgavencategorie succesvol verwijderd",
 | 
					 | 
				
			||||||
            "updated_message": "Uitgavencategorie succesvol bijgewerkt",
 | 
					 | 
				
			||||||
            "confirm_delete": "U zult niet in staat zijn om deze uitgavencategorie te herstellen",
 | 
					 | 
				
			||||||
            "already_in_use": "Categorie is al in gebruik"
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "preferences": {
 | 
					 | 
				
			||||||
            "currency": "Valuta",
 | 
					 | 
				
			||||||
            "language": "Taal",
 | 
					 | 
				
			||||||
            "time_zone": "Tijdzone",
 | 
					 | 
				
			||||||
            "fiscal_year": "Boekjaar",
 | 
					 | 
				
			||||||
            "date_format": "Datum Formaat",
 | 
					 | 
				
			||||||
            "discount_setting": "Korting instelling",
 | 
					 | 
				
			||||||
            "discount_per_item": "Korting per Artikel ",
 | 
					 | 
				
			||||||
            "discount_setting_description": "Schakel dit in als u korting wilt toevoegen aan individuele factuurartikelen. Standaard wordt Korting direct aan de factuur toegevoegd.",
 | 
					 | 
				
			||||||
            "save": "Opslaan",
 | 
					 | 
				
			||||||
            "preference": "Voorkeur | Voorkeuren",
 | 
					 | 
				
			||||||
            "general_settings": "Standaard voorkeuren voor het systeem.",
 | 
					 | 
				
			||||||
            "updated_message": "Voorkeuren succesvol bijgewerkt",
 | 
					 | 
				
			||||||
            "select_language": "selecteer taal",
 | 
					 | 
				
			||||||
            "select_time_zone": "selecteer Tijdzone",
 | 
					 | 
				
			||||||
            "select_date_formate": "selecteer Datum formaat",
 | 
					 | 
				
			||||||
            "select_financial_year": "selecteer boekjaar"
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "update_app": {
 | 
					 | 
				
			||||||
            "title": "App bijwerken",
 | 
					 | 
				
			||||||
            "description": "U kunt Crater eenvoudig updaten door te controleren of er een nieuwe update is door op onderstaande knop te klikken.",
 | 
					 | 
				
			||||||
            "check_update": "Controleer op updates",
 | 
					 | 
				
			||||||
            "avail_update": "Nieuwe update beschikbaar",
 | 
					 | 
				
			||||||
            "next_version": "Volgende versie",
 | 
					 | 
				
			||||||
            "update": "Update nu",
 | 
					 | 
				
			||||||
            "update_progress": "Update in behandeling...",
 | 
					 | 
				
			||||||
            "progress_text": "Het zal slechts een paar minuten duren. Gelieve het scherm niet te verversen of het venster te sluiten voordat de update is voltooid.",
 | 
					 | 
				
			||||||
            "update_success": "App is geüpdatet! Wacht even terwijl uw browser automatisch wordt herladen..",
 | 
					 | 
				
			||||||
            "latest_message": "Geen update beschikbaar! U zit op de laatste versie.",
 | 
					 | 
				
			||||||
            "current_version": "Huidige versie"
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "wizard": {
 | 
					 | 
				
			||||||
        "account_info": "Account Informatie",
 | 
					 | 
				
			||||||
        "account_info_desc": "Hieronder worden de gegevens gebruikt om de hoofdadministrator-account aan te maken. Ook kunt u de gegevens op elk moment na het inloggen wijzigen.",
 | 
					 | 
				
			||||||
        "name": "Naam",
 | 
					 | 
				
			||||||
        "email": "E-mail",
 | 
					 | 
				
			||||||
        "password": "Wachtwoord",
 | 
					 | 
				
			||||||
        "confirm_password": "Bevestig wachtwoord",
 | 
					 | 
				
			||||||
        "save_cont": "Opslaan & doorgaan",
 | 
					 | 
				
			||||||
        "company_info": "Bedrijfsinformatie",
 | 
					 | 
				
			||||||
        "company_info_desc": "Deze informatie wordt op de facturen weergegeven. Merk op dat u dit later op de instellingenpagina kunt bewerken.",
 | 
					 | 
				
			||||||
        "company_name": "Bedrijfsnaam",
 | 
					 | 
				
			||||||
        "company_logo": "Bedrijfslogo",
 | 
					 | 
				
			||||||
        "logo_preview": "Logo Voorbeeld",
 | 
					 | 
				
			||||||
        "preferences": "Voorkeuren",
 | 
					 | 
				
			||||||
        "preferences_desc": "Standaard voorkeuren voor het systeem.",
 | 
					 | 
				
			||||||
        "country": "Land",
 | 
					 | 
				
			||||||
        "state": "Staat",
 | 
					 | 
				
			||||||
        "city": "Stad",
 | 
					 | 
				
			||||||
        "address": "Adres",
 | 
					 | 
				
			||||||
        "street": "Straat1 | Straatt2",
 | 
					 | 
				
			||||||
        "phone": "Telefoon",
 | 
					 | 
				
			||||||
        "zip_code": "Postcode",
 | 
					 | 
				
			||||||
        "go_back": "Ga Terug",
 | 
					 | 
				
			||||||
        "currency": "Valuta",
 | 
					 | 
				
			||||||
        "language": "Taal",
 | 
					 | 
				
			||||||
        "time_zone": "Tijdzone",
 | 
					 | 
				
			||||||
        "fiscal_year": "Boekjaar",
 | 
					 | 
				
			||||||
        "date_format": "Datum Formaat",
 | 
					 | 
				
			||||||
        "from_address": "Van Adres",
 | 
					 | 
				
			||||||
        "username": "Gebruikersnaam",
 | 
					 | 
				
			||||||
        "next": "Volgende",
 | 
					 | 
				
			||||||
        "continue": "Doorgaan",
 | 
					 | 
				
			||||||
        "skip": "Sla over",
 | 
					 | 
				
			||||||
        "database": {
 | 
					 | 
				
			||||||
            "database": "Site URL & Database",
 | 
					 | 
				
			||||||
            "connection": "Database Connectie",
 | 
					 | 
				
			||||||
            "host": "Database Host",
 | 
					 | 
				
			||||||
            "port": "Database Port",
 | 
					 | 
				
			||||||
            "password": "Database Wachtwoord",
 | 
					 | 
				
			||||||
            "app_url": "App URL",
 | 
					 | 
				
			||||||
            "username": "Database Gebruikersnaam",
 | 
					 | 
				
			||||||
            "db_name": "Database Naam",
 | 
					 | 
				
			||||||
            "desc": "Maak een database aan op de server en vul de referenties in in het formulier."
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "permissions": {
 | 
					 | 
				
			||||||
            "permissions": "Rechten",
 | 
					 | 
				
			||||||
            "permission_confirm_title": "Ben je zeker dat je wilt doorgaan?",
 | 
					 | 
				
			||||||
            "permission_confirm_desc": "Toestemmingscheck van de map is mislukt",
 | 
					 | 
				
			||||||
            "permission_desc": "Hieronder staat de lijst met mapmachtigingen die nodig zijn om de app te laten werken. Als de toestemmingscontrole mislukt, zorg er dan voor dat u uw mapmachtigingen bijwerkt."
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "mail": {
 | 
					 | 
				
			||||||
            "host": "Mail Host",
 | 
					 | 
				
			||||||
            "port": "Mail Port",
 | 
					 | 
				
			||||||
            "driver": "Mail Driver",
 | 
					 | 
				
			||||||
            "secret": "Geheim",
 | 
					 | 
				
			||||||
            "mailgun_secret": "Mailgun Geheim",
 | 
					 | 
				
			||||||
            "mailgun_domain": "Domein",
 | 
					 | 
				
			||||||
            "mailgun_endpoint": "Mailgun Endpoint",
 | 
					 | 
				
			||||||
            "ses_secret": "SES Geheim",
 | 
					 | 
				
			||||||
            "ses_key": "SES Sleutel",
 | 
					 | 
				
			||||||
            "password": "Mail Wachtwoord",
 | 
					 | 
				
			||||||
            "username": "Mail Gebruikersnaam",
 | 
					 | 
				
			||||||
            "mail_config": "Mail Configuratie",
 | 
					 | 
				
			||||||
            "from_name": "Van Mail Naam",
 | 
					 | 
				
			||||||
            "from_mail": "Van Mail Adres",
 | 
					 | 
				
			||||||
            "encryption": "Mail Encryptie",
 | 
					 | 
				
			||||||
            "mail_config_desc": "Hieronder vindt u het formulier voor het configureren van het e-mailstuurprogramma voor het verzenden van e-mails vanuit de app. U kunt ook externe providers zoals Sendgrid, SES etc. configureren."
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "req": {
 | 
					 | 
				
			||||||
            "system_req": "Systeemvereisten",
 | 
					 | 
				
			||||||
            "php_req_version": "Php (versie {version} verplicht)",
 | 
					 | 
				
			||||||
            "check_req": "Controleer vereisten",
 | 
					 | 
				
			||||||
            "system_req_desc": "Crater heeft een paar serververeisten. Zorg ervoor dat uw server de vereiste php-versie en alle hieronder vermelde extensies heeft."
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "errors": {
 | 
					 | 
				
			||||||
            "migrate_failed": "Migratie Mislukt",
 | 
					 | 
				
			||||||
            "database_variables_save_error": "Niet in staat om verbinding te maken met de DB met de voorziene waarden.",
 | 
					 | 
				
			||||||
            "mail_variables_save_error": "E-mail configuratie mislukt.",
 | 
					 | 
				
			||||||
            "connection_failed": "Database connectie mislukt",
 | 
					 | 
				
			||||||
            "database_should_be_empty": "Database moet leeg zijn"
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "success": {
 | 
					 | 
				
			||||||
            "mail_variables_save_successfully": "E-mail succesvol geconfigureerd",
 | 
					 | 
				
			||||||
            "database_variables_save_successfully": "Database succesvol geconfigureerd."
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "layout_login": {
 | 
					 | 
				
			||||||
        "copyright_crater": "Copyright @ Crater - 2019",
 | 
					 | 
				
			||||||
        "super_simple_invoicing": "Super eenvoudige facturatie",
 | 
					 | 
				
			||||||
        "for_freelancer": "voor Freelancers &",
 | 
					 | 
				
			||||||
        "small_businesses": "Kleine bedrijven ",
 | 
					 | 
				
			||||||
        "crater_help": "Crater helpt u bij het bijhouden van de uitgaven, het registreren van betalingen & het genereren van mooie",
 | 
					 | 
				
			||||||
        "invoices_and_estimates": "facturen & offertes met de mogelijkheid te kiezen uit meerdere sjablonen."
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "validation": {
 | 
					 | 
				
			||||||
        "invalid_url": "Ongeldige url (ex: http://www.crater.com)",
 | 
					 | 
				
			||||||
        "required": "Veld is verplicht",
 | 
					 | 
				
			||||||
        "email_incorrect": "Onjuist E-mail.",
 | 
					 | 
				
			||||||
        "email_already_taken": "De e-mail is reeds ingenomen.",
 | 
					 | 
				
			||||||
        "email_does_not_exist": "Gebruiker met opgegeven e-mail bestaat niet",
 | 
					 | 
				
			||||||
        "send_reset_link": "Verstuur Reset Link",
 | 
					 | 
				
			||||||
        "not_yet": "Nog niet? Verstuur opnieuw.",
 | 
					 | 
				
			||||||
        "password_min_length": "Wachtwoord moet {count} karakters bevatten",
 | 
					 | 
				
			||||||
        "name_min_length": "Naam moet tenminste {count} letters bevatten.",
 | 
					 | 
				
			||||||
        "enter_valid_tax_rate": "Voer een geldig btw tarief in",
 | 
					 | 
				
			||||||
        "numbers_only": "Alleen nummers.",
 | 
					 | 
				
			||||||
        "characters_only": "Alleen karakters.",
 | 
					 | 
				
			||||||
        "password_incorrect": "Wachtwoorden moeten identiek zijn",
 | 
					 | 
				
			||||||
        "password_length": "Wachtwoord moet {count} karakters lang zijn.",
 | 
					 | 
				
			||||||
        "qty_must_greater_than_zero": "Hoeveelheid moet groter zijn dan nul.",
 | 
					 | 
				
			||||||
        "price_greater_than_zero": "Prijs moet groter zijn dan nul.",
 | 
					 | 
				
			||||||
        "payment_greater_than_zero": "Betaling moet groter zijn dan   nul.",
 | 
					 | 
				
			||||||
        "payment_greater_than_due_amount": "Ingevoerde betaling is meer dan het verschuldigde bedrag van deze factuur.",
 | 
					 | 
				
			||||||
        "quantity_maxlength": "De hoeveelheid mag niet groter zijn dan 20 cijfers.",
 | 
					 | 
				
			||||||
        "price_maxlength": "De prijs mag niet hoger zijn dan 20 cijfers.",
 | 
					 | 
				
			||||||
        "price_minvalue": "De prijs moet groter zijn dan 0.",
 | 
					 | 
				
			||||||
        "amount_maxlength": "Het bedrag mag niet groter zijn dan 20 cijfers.",
 | 
					 | 
				
			||||||
        "amount_minvalue": "Bedrag moet groter zijn dan 0.",
 | 
					 | 
				
			||||||
        "description_maxlength": "De beschrijving mag niet groter zijn dan 255 tekens.",
 | 
					 | 
				
			||||||
        "maximum_options_error": "Maximum  van {max} opties geselecteerd. Verwijder eerst een geselecteerde optie om een andere te selecteren.",
 | 
					 | 
				
			||||||
        "notes_maxlength": "Notities mogen niet groter zijn dan 255 tekens.",
 | 
					 | 
				
			||||||
        "address_maxlength": "Het adres mag niet groter zijn dan 255 tekens.",
 | 
					 | 
				
			||||||
        "ref_number_maxlength": "Ref. Nummer mag niet groter zijn dan 255 tekens.",
 | 
					 | 
				
			||||||
        "prefix_maxlength": "prefix mag niet groter zijn dan 5 karakters.",
 | 
					 | 
				
			||||||
        "item_unit_already_taken": "De naam van dit item is al in gebruik",
 | 
					 | 
				
			||||||
        "payment_mode_already_taken": "Deze naam voor de betalingsmodus is al in gebruik",
 | 
					 | 
				
			||||||
        "subject_maxlength": "Het onderwerp mag niet meer dan 100 tekens bevatten.",
 | 
					 | 
				
			||||||
        "message_maxlength": "Bericht mag niet groter zijn dan 255 tekens.",    
 | 
					 | 
				
			||||||
        "something_went_wrong": "Er is iets fout gegaan"
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@ -17,11 +17,17 @@
 | 
				
			|||||||
    "save": "Salvar",
 | 
					    "save": "Salvar",
 | 
				
			||||||
    "cancel": "Cancelar",
 | 
					    "cancel": "Cancelar",
 | 
				
			||||||
    "update": "Atualizar",
 | 
					    "update": "Atualizar",
 | 
				
			||||||
 | 
					    "deselect": "Desmarcar",
 | 
				
			||||||
    "download": "Baixar",
 | 
					    "download": "Baixar",
 | 
				
			||||||
    "from_date": "A partir da Data",
 | 
					    "from_date": "A partir da Data",
 | 
				
			||||||
    "to_date": "Até a Data",
 | 
					    "to_date": "Até a Data",
 | 
				
			||||||
    "from": "De",
 | 
					    "from": "De",
 | 
				
			||||||
    "to": "Para",
 | 
					    "to": "Para",
 | 
				
			||||||
 | 
					    "sort_by": "Ordenar por",
 | 
				
			||||||
 | 
					    "ascending": "Crescente",
 | 
				
			||||||
 | 
					    "descending": "Descendente",
 | 
				
			||||||
 | 
					    "subject": "Sujeita",
 | 
				
			||||||
 | 
					    "message": "Mensagem",
 | 
				
			||||||
    "go_back": "Voltar",
 | 
					    "go_back": "Voltar",
 | 
				
			||||||
    "back_to_login": "Voltar ao Login",
 | 
					    "back_to_login": "Voltar ao Login",
 | 
				
			||||||
    "home": "Home",
 | 
					    "home": "Home",
 | 
				
			||||||
@ -62,14 +68,16 @@
 | 
				
			|||||||
    "four_zero_four": "404",
 | 
					    "four_zero_four": "404",
 | 
				
			||||||
    "you_got_lost": "Ops! Se perdeu!",
 | 
					    "you_got_lost": "Ops! Se perdeu!",
 | 
				
			||||||
    "go_home": "Ir para Home",
 | 
					    "go_home": "Ir para Home",
 | 
				
			||||||
 | 
					    "test_mail_conf": "Testar configuração de email",
 | 
				
			||||||
 | 
					    "send_mail_successfully": "Correio enviado com sucesso",
 | 
				
			||||||
    "setting_updated": "Configuração atualizada com sucesso",
 | 
					    "setting_updated": "Configuração atualizada com sucesso",
 | 
				
			||||||
    "select_state": "Selecione Estado",
 | 
					    "select_state": "Selecione Estado",
 | 
				
			||||||
    "select_country": "Selecionar pais",
 | 
					    "select_country": "Selecionar pais",
 | 
				
			||||||
    "select_city": "Selecionar cidade",
 | 
					    "select_city": "Selecionar cidade",
 | 
				
			||||||
    "street_1": "Rua 1",
 | 
					    "street_1": "Rua 1",
 | 
				
			||||||
    "street_2": "Rua # 2",
 | 
					    "street_2": "Rua # 2",
 | 
				
			||||||
    "action_failed": "Ação: Falhou"
 | 
					    "action_failed": "Ação: Falhou",
 | 
				
			||||||
 | 
					    "retry": "Atualização falhou"
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  "dashboard": {
 | 
					  "dashboard": {
 | 
				
			||||||
    "select_year": "Selecione Ano",
 | 
					    "select_year": "Selecione Ano",
 | 
				
			||||||
@ -155,7 +163,7 @@
 | 
				
			|||||||
    "select_a_customer": "Selecione um cliente",
 | 
					    "select_a_customer": "Selecione um cliente",
 | 
				
			||||||
    "type_or_click": "Digite ou clique para selecionar",
 | 
					    "type_or_click": "Digite ou clique para selecionar",
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    "confirm_delete": "Você não poderá recuperar este cliente | Você não poderá recuperar esses clientes",
 | 
					    "confirm_delete": "Você não poderá recuperar este cliente e todas as faturas, estimativas e pagamentos relacionados. | Você não poderá recuperar esses clientes e todas as faturas, estimativas e pagamentos relacionados.",
 | 
				
			||||||
    "created_message": "Cliente criado com sucesso",
 | 
					    "created_message": "Cliente criado com sucesso",
 | 
				
			||||||
    "updated_message": "Cliente atualizado com sucesso",
 | 
					    "updated_message": "Cliente atualizado com sucesso",
 | 
				
			||||||
    "deleted_message": "Cliente excluído com sucesso | Clientes excluídos com sucesso"
 | 
					    "deleted_message": "Cliente excluído com sucesso | Clientes excluídos com sucesso"
 | 
				
			||||||
@ -180,7 +188,7 @@
 | 
				
			|||||||
    "no_items": "Ainda não existe itens",
 | 
					    "no_items": "Ainda não existe itens",
 | 
				
			||||||
    "list_of_items": "Esta seção conterá a lista de itens.",
 | 
					    "list_of_items": "Esta seção conterá a lista de itens.",
 | 
				
			||||||
    "select_a_unit": "Seleciona unidade",
 | 
					    "select_a_unit": "Seleciona unidade",
 | 
				
			||||||
 | 
					    "taxes": "Impostos",
 | 
				
			||||||
    "item_attached_message": "Não é possível excluir um item que já está em uso.",
 | 
					    "item_attached_message": "Não é possível excluir um item que já está em uso.",
 | 
				
			||||||
    "confirm_delete": "Você não poderá recuperar este item | Você não poderá recuperar esses itens",
 | 
					    "confirm_delete": "Você não poderá recuperar este item | Você não poderá recuperar esses itens",
 | 
				
			||||||
    "created_message": "Item criado com sucesso",
 | 
					    "created_message": "Item criado com sucesso",
 | 
				
			||||||
@ -329,6 +337,9 @@
 | 
				
			|||||||
    "no_matching_invoices": "Não há faturas correspondentes!",
 | 
					    "no_matching_invoices": "Não há faturas correspondentes!",
 | 
				
			||||||
    "mark_as_sent_successfully": "Fatura marcada como enviada com sucesso",
 | 
					    "mark_as_sent_successfully": "Fatura marcada como enviada com sucesso",
 | 
				
			||||||
    "send_invoice_successfully": "Fatura enviada com sucesso",
 | 
					    "send_invoice_successfully": "Fatura enviada com sucesso",
 | 
				
			||||||
 | 
					    "cloned_successfully": "Fatura clonada com sucesso",
 | 
				
			||||||
 | 
					    "clone_invoice": "Clonar fatura",
 | 
				
			||||||
 | 
					    "confirm_clone": "Esta fatura será clonada em uma nova fatura",
 | 
				
			||||||
    "item": {
 | 
					    "item": {
 | 
				
			||||||
      "title": "Titulo do Item",
 | 
					      "title": "Titulo do Item",
 | 
				
			||||||
      "description": "Descrição",
 | 
					      "description": "Descrição",
 | 
				
			||||||
@ -394,6 +405,7 @@
 | 
				
			|||||||
    "edit_payment": "Editar Pagamento",
 | 
					    "edit_payment": "Editar Pagamento",
 | 
				
			||||||
    "view_payment": "Ver Pagamento",
 | 
					    "view_payment": "Ver Pagamento",
 | 
				
			||||||
    "add_new_payment": "Adicionar novo Pagamento",
 | 
					    "add_new_payment": "Adicionar novo Pagamento",
 | 
				
			||||||
 | 
					    "send_payment_receipt": "Enviar recibo de pagamento",
 | 
				
			||||||
    "save_payment": "Salvar Pagamento",
 | 
					    "save_payment": "Salvar Pagamento",
 | 
				
			||||||
    "update_payment": "Atualizar Pagamento",
 | 
					    "update_payment": "Atualizar Pagamento",
 | 
				
			||||||
    "payment": "Pagamento | Pagamentos",
 | 
					    "payment": "Pagamento | Pagamentos",
 | 
				
			||||||
@ -528,7 +540,7 @@
 | 
				
			|||||||
      "date_range": "Selecionar período"
 | 
					      "date_range": "Selecionar período"
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
"settings": {
 | 
					  "settings": {
 | 
				
			||||||
    "menu_title": {
 | 
					    "menu_title": {
 | 
				
			||||||
      "account_settings": "Configurações da conta",
 | 
					      "account_settings": "Configurações da conta",
 | 
				
			||||||
      "company_information": "Informações da Empresa",
 | 
					      "company_information": "Informações da Empresa",
 | 
				
			||||||
@ -659,7 +671,28 @@
 | 
				
			|||||||
        "autogenerate_payment_number": "Gerar automaticamente número do Pagamento",
 | 
					        "autogenerate_payment_number": "Gerar automaticamente número do Pagamento",
 | 
				
			||||||
        "payment_setting_description": "Desative isso, se você não deseja gerar automaticamente números do Pagamento sempre que criar um novo.",
 | 
					        "payment_setting_description": "Desative isso, se você não deseja gerar automaticamente números do Pagamento sempre que criar um novo.",
 | 
				
			||||||
        "enter_payment_prefix": "Digite o Prefixo do Pagamento",
 | 
					        "enter_payment_prefix": "Digite o Prefixo do Pagamento",
 | 
				
			||||||
            "payment_setting_updated": "Configurações de Pagamento atualizada com sucesso"
 | 
					        "payment_setting_updated": "Configurações de Pagamento atualizada com sucesso",
 | 
				
			||||||
 | 
					        "payment_mode": "Modo de pagamento",
 | 
				
			||||||
 | 
					        "add_payment_mode": "Adicionar modo de pagamento",
 | 
				
			||||||
 | 
					        "edit_payment_mode": "Editar modo de pagamento",
 | 
				
			||||||
 | 
					        "mode_name": "Nome do modo",
 | 
				
			||||||
 | 
					        "payment_mode_added": "Modo de pagamento adicionado",
 | 
				
			||||||
 | 
					        "payment_mode_updated": "Modo de pagamento atualizado",
 | 
				
			||||||
 | 
					        "payment_mode_confirm_delete": "Você não poderá recuperar este modo de pagamento",
 | 
				
			||||||
 | 
					        "already_in_use": "O modo de pagamento já está em uso",
 | 
				
			||||||
 | 
					        "deleted_message": "Modo de pagamento excluído com sucesso"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "items": {
 | 
				
			||||||
 | 
					        "title": "Itens",
 | 
				
			||||||
 | 
					        "units": "unidades",
 | 
				
			||||||
 | 
					        "add_item_unit": "Adicionar unidade de item",
 | 
				
			||||||
 | 
					        "edit_item_unit": "Editar unidade de item",
 | 
				
			||||||
 | 
					        "unit_name": "Nome da unidade",
 | 
				
			||||||
 | 
					        "item_unit_added": "Item Unit Added",
 | 
				
			||||||
 | 
					        "item_unit_updated": "Item Unit Updated",
 | 
				
			||||||
 | 
					        "item_unit_confirm_delete": "Você não poderá recuperar esta unidade de item",
 | 
				
			||||||
 | 
					        "already_in_use": "A unidade do item já está em uso",
 | 
				
			||||||
 | 
					        "deleted_message": "Unidade de item excluída com sucesso"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "account_settings": {
 | 
					    "account_settings": {
 | 
				
			||||||
@ -694,6 +727,7 @@
 | 
				
			|||||||
    "tax_types": {
 | 
					    "tax_types": {
 | 
				
			||||||
      "title": "Tipos de Impostos",
 | 
					      "title": "Tipos de Impostos",
 | 
				
			||||||
      "add_tax": "Adicionar Imposto",
 | 
					      "add_tax": "Adicionar Imposto",
 | 
				
			||||||
 | 
					      "edit_tax": "Editar imposto",
 | 
				
			||||||
      "description": "Você pode adicionar ou remover impostos conforme desejar. O Crater suporta impostos sobre itens individuais e também na Fatura.",
 | 
					      "description": "Você pode adicionar ou remover impostos conforme desejar. O Crater suporta impostos sobre itens individuais e também na Fatura.",
 | 
				
			||||||
      "add_new_tax": "Adicionar Novo Imposto",
 | 
					      "add_new_tax": "Adicionar Novo Imposto",
 | 
				
			||||||
      "tax_settings": "Configurações de Impostos",
 | 
					      "tax_settings": "Configurações de Impostos",
 | 
				
			||||||
@ -714,6 +748,8 @@
 | 
				
			|||||||
      "action": "Ação",
 | 
					      "action": "Ação",
 | 
				
			||||||
      "description": "As Categorias são necessárias para adicionar entradas de Despesas. Você pode adicionar ou remover essas Categorias de acordo com sua preferência.",
 | 
					      "description": "As Categorias são necessárias para adicionar entradas de Despesas. Você pode adicionar ou remover essas Categorias de acordo com sua preferência.",
 | 
				
			||||||
      "add_new_category": "Adicionar Nova Categoria",
 | 
					      "add_new_category": "Adicionar Nova Categoria",
 | 
				
			||||||
 | 
					      "add_category": "Adicionar categoria",
 | 
				
			||||||
 | 
					      "edit_category": "Editar categoria",
 | 
				
			||||||
      "category_name": "Nome da Categoria",
 | 
					      "category_name": "Nome da Categoria",
 | 
				
			||||||
      "category_description": "Descrição",
 | 
					      "category_description": "Descrição",
 | 
				
			||||||
      "created_message": "Categoria de Despesa criada com sucesso",
 | 
					      "created_message": "Categoria de Despesa criada com sucesso",
 | 
				
			||||||
@ -751,7 +787,14 @@
 | 
				
			|||||||
      "progress_text": "Levará apenas alguns minutos. Não atualize a tela ou feche a janela antes que a atualização seja concluída",
 | 
					      "progress_text": "Levará apenas alguns minutos. Não atualize a tela ou feche a janela antes que a atualização seja concluída",
 | 
				
			||||||
      "update_success": "O aplicativo foi atualizado! Aguarde enquanto a janela do navegador é recarregada automaticamente.",
 | 
					      "update_success": "O aplicativo foi atualizado! Aguarde enquanto a janela do navegador é recarregada automaticamente.",
 | 
				
			||||||
      "latest_message": "Nenhuma atualização disponível! Você está na versão mais recente.",
 | 
					      "latest_message": "Nenhuma atualização disponível! Você está na versão mais recente.",
 | 
				
			||||||
        "current_version": "Versão Atual"
 | 
					      "current_version": "Versão Atual",
 | 
				
			||||||
 | 
					      "download_zip_file": "Baixar arquivo ZIP",
 | 
				
			||||||
 | 
					      "unzipping_package": "Descompactando o pacote",
 | 
				
			||||||
 | 
					      "copying_files": "Copiando arquivos",
 | 
				
			||||||
 | 
					      "running_migrations": "Executando migrações",
 | 
				
			||||||
 | 
					      "finishing_update": "Atualização de acabamento",
 | 
				
			||||||
 | 
					      "update_failed": "Atualização falhou",
 | 
				
			||||||
 | 
					      "update_failed_text": "Desculpa! Sua atualização falhou em: {step} step"
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  "wizard": {
 | 
					  "wizard": {
 | 
				
			||||||
@ -879,4 +922,4 @@
 | 
				
			|||||||
    "ref_number_maxlength": "O número de referência não deve ter mais que 255 caracteres.",
 | 
					    "ref_number_maxlength": "O número de referência não deve ter mais que 255 caracteres.",
 | 
				
			||||||
    "prefix_maxlength": "O prefixo não deve ter mais que 5 caracteres."
 | 
					    "prefix_maxlength": "O prefixo não deve ter mais que 5 caracteres."
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
    }
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -42,7 +42,6 @@ export default {
 | 
				
			|||||||
  },
 | 
					  },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  [types.ADD_ITEM_UNIT] (state, data) {
 | 
					  [types.ADD_ITEM_UNIT] (state, data) {
 | 
				
			||||||
    state.itemUnits.push(data.unit)
 | 
					 | 
				
			||||||
    state.itemUnits = [data.unit, ...state.itemUnits]
 | 
					    state.itemUnits = [data.unit, ...state.itemUnits]
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -40,7 +40,6 @@ export default {
 | 
				
			|||||||
  },
 | 
					  },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  [types.ADD_PAYMENT_MODE] (state, data) {
 | 
					  [types.ADD_PAYMENT_MODE] (state, data) {
 | 
				
			||||||
    state.paymentModes.push(data.paymentMethod)
 | 
					 | 
				
			||||||
    state.paymentModes = [data.paymentMethod, ...state.paymentModes]
 | 
					    state.paymentModes = [data.paymentMethod, ...state.paymentModes]
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -4,16 +4,12 @@
 | 
				
			|||||||
      <h3 class="page-title">{{ $t('estimates.title') }}</h3>
 | 
					      <h3 class="page-title">{{ $t('estimates.title') }}</h3>
 | 
				
			||||||
      <ol class="breadcrumb">
 | 
					      <ol class="breadcrumb">
 | 
				
			||||||
        <li class="breadcrumb-item">
 | 
					        <li class="breadcrumb-item">
 | 
				
			||||||
          <router-link
 | 
					          <router-link slot="item-title" to="dashboard">
 | 
				
			||||||
            slot="item-title"
 | 
					 | 
				
			||||||
            to="dashboard">
 | 
					 | 
				
			||||||
            {{ $t('general.home') }}
 | 
					            {{ $t('general.home') }}
 | 
				
			||||||
          </router-link>
 | 
					          </router-link>
 | 
				
			||||||
        </li>
 | 
					        </li>
 | 
				
			||||||
        <li class="breadcrumb-item">
 | 
					        <li class="breadcrumb-item">
 | 
				
			||||||
          <router-link
 | 
					          <router-link slot="item-title" to="#">
 | 
				
			||||||
            slot="item-title"
 | 
					 | 
				
			||||||
            to="#">
 | 
					 | 
				
			||||||
            {{ $tc('estimates.estimate', 2) }}
 | 
					            {{ $tc('estimates.estimate', 2) }}
 | 
				
			||||||
          </router-link>
 | 
					          </router-link>
 | 
				
			||||||
        </li>
 | 
					        </li>
 | 
				
			||||||
@ -33,11 +29,9 @@
 | 
				
			|||||||
          </base-button>
 | 
					          </base-button>
 | 
				
			||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
        <router-link slot="item-title" class="col-xs-2" to="estimates/create">
 | 
					        <router-link slot="item-title" class="col-xs-2" to="estimates/create">
 | 
				
			||||||
          <base-button
 | 
					          <base-button size="large" icon="plus" color="theme">
 | 
				
			||||||
            size="large"
 | 
					            {{ $t('estimates.new_estimate') }}</base-button
 | 
				
			||||||
            icon="plus"
 | 
					          >
 | 
				
			||||||
            color="theme" >
 | 
					 | 
				
			||||||
            {{ $t('estimates.new_estimate') }}</base-button>
 | 
					 | 
				
			||||||
        </router-link>
 | 
					        </router-link>
 | 
				
			||||||
      </div>
 | 
					      </div>
 | 
				
			||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
@ -46,7 +40,7 @@
 | 
				
			|||||||
      <div v-show="showFilters" class="filter-section">
 | 
					      <div v-show="showFilters" class="filter-section">
 | 
				
			||||||
        <div class="filter-container">
 | 
					        <div class="filter-container">
 | 
				
			||||||
          <div class="filter-customer">
 | 
					          <div class="filter-customer">
 | 
				
			||||||
            <label>{{ $tc('customers.customer',1) }} </label>
 | 
					            <label>{{ $tc('customers.customer', 1) }} </label>
 | 
				
			||||||
            <base-customer-select
 | 
					            <base-customer-select
 | 
				
			||||||
              ref="customerSelect"
 | 
					              ref="customerSelect"
 | 
				
			||||||
              @select="onSelectCustomer"
 | 
					              @select="onSelectCustomer"
 | 
				
			||||||
@ -85,21 +79,28 @@
 | 
				
			|||||||
          </div>
 | 
					          </div>
 | 
				
			||||||
          <div class="filter-estimate">
 | 
					          <div class="filter-estimate">
 | 
				
			||||||
            <label>{{ $t('estimates.estimate_number') }}</label>
 | 
					            <label>{{ $t('estimates.estimate_number') }}</label>
 | 
				
			||||||
            <base-input
 | 
					            <base-input v-model="filters.estimate_number" icon="hashtag" />
 | 
				
			||||||
              v-model="filters.estimate_number"
 | 
					 | 
				
			||||||
              icon="hashtag"/>
 | 
					 | 
				
			||||||
          </div>
 | 
					          </div>
 | 
				
			||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
        <label class="clear-filter" @click="clearFilter">{{ $t('general.clear_all') }}</label>
 | 
					        <label class="clear-filter" @click="clearFilter">{{
 | 
				
			||||||
 | 
					          $t('general.clear_all')
 | 
				
			||||||
 | 
					        }}</label>
 | 
				
			||||||
      </div>
 | 
					      </div>
 | 
				
			||||||
    </transition>
 | 
					    </transition>
 | 
				
			||||||
    <div v-cloak v-show="showEmptyScreen" class="col-xs-1 no-data-info" align="center">
 | 
					    <div
 | 
				
			||||||
      <moon-walker-icon class="mt-5 mb-4"/>
 | 
					      v-cloak
 | 
				
			||||||
 | 
					      v-show="showEmptyScreen"
 | 
				
			||||||
 | 
					      class="col-xs-1 no-data-info"
 | 
				
			||||||
 | 
					      align="center"
 | 
				
			||||||
 | 
					    >
 | 
				
			||||||
 | 
					      <moon-walker-icon class="mt-5 mb-4" />
 | 
				
			||||||
      <div class="row" align="center">
 | 
					      <div class="row" align="center">
 | 
				
			||||||
        <label class="col title">{{ $t('estimates.no_estimates') }}</label>
 | 
					        <label class="col title">{{ $t('estimates.no_estimates') }}</label>
 | 
				
			||||||
      </div>
 | 
					      </div>
 | 
				
			||||||
      <div class="row">
 | 
					      <div class="row">
 | 
				
			||||||
        <label class="description col mt-1" align="center">{{ $t('estimates.list_of_estimates') }}</label>
 | 
					        <label class="description col mt-1" align="center">{{
 | 
				
			||||||
 | 
					          $t('estimates.list_of_estimates')
 | 
				
			||||||
 | 
					        }}</label>
 | 
				
			||||||
      </div>
 | 
					      </div>
 | 
				
			||||||
      <div class="btn-container">
 | 
					      <div class="btn-container">
 | 
				
			||||||
        <base-button
 | 
					        <base-button
 | 
				
			||||||
@ -116,28 +117,57 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    <div v-show="!showEmptyScreen" class="table-container">
 | 
					    <div v-show="!showEmptyScreen" class="table-container">
 | 
				
			||||||
      <div class="table-actions mt-5">
 | 
					      <div class="table-actions mt-5">
 | 
				
			||||||
        <p class="table-stats">{{ $t('general.showing') }}: <b>{{ estimates.length }}</b> {{ $t('general.of') }} <b>{{ totalEstimates }}</b></p>
 | 
					        <p class="table-stats">
 | 
				
			||||||
 | 
					          {{ $t('general.showing') }}: <b>{{ estimates.length }}</b>
 | 
				
			||||||
 | 
					          {{ $t('general.of') }} <b>{{ totalEstimates }}</b>
 | 
				
			||||||
 | 
					        </p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        <!-- Tabs -->
 | 
					        <!-- Tabs -->
 | 
				
			||||||
        <ul class="tabs">
 | 
					        <ul class="tabs">
 | 
				
			||||||
          <li class="tab" @click="getStatus('DRAFT')">
 | 
					          <li class="tab" @click="getStatus('DRAFT')">
 | 
				
			||||||
            <a :class="['tab-link', {'a-active': filters.status === 'DRAFT'}]" href="#">{{ $t('general.draft') }}</a>
 | 
					            <a
 | 
				
			||||||
 | 
					              :class="['tab-link', { 'a-active': filters.status === 'DRAFT' }]"
 | 
				
			||||||
 | 
					              href="#"
 | 
				
			||||||
 | 
					              >{{ $t('general.draft') }}</a
 | 
				
			||||||
 | 
					            >
 | 
				
			||||||
          </li>
 | 
					          </li>
 | 
				
			||||||
          <li class="tab" @click="getStatus('SENT')">
 | 
					          <li class="tab" @click="getStatus('SENT')">
 | 
				
			||||||
            <a :class="['tab-link', {'a-active': filters.status === 'SENT'}]" href="#" >{{ $t('general.sent') }}</a>
 | 
					            <a
 | 
				
			||||||
 | 
					              :class="['tab-link', { 'a-active': filters.status === 'SENT' }]"
 | 
				
			||||||
 | 
					              href="#"
 | 
				
			||||||
 | 
					              >{{ $t('general.sent') }}</a
 | 
				
			||||||
 | 
					            >
 | 
				
			||||||
          </li>
 | 
					          </li>
 | 
				
			||||||
          <li class="tab" @click="getStatus('')">
 | 
					          <li class="tab" @click="getStatus('')">
 | 
				
			||||||
            <a :class="['tab-link', {'a-active': filters.status === '' || filters.status !== 'DRAFT' && filters.status !== 'SENT'}]" href="#">{{ $t('general.all') }}</a>
 | 
					            <a
 | 
				
			||||||
 | 
					              :class="[
 | 
				
			||||||
 | 
					                'tab-link',
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                  'a-active':
 | 
				
			||||||
 | 
					                    filters.status === '' ||
 | 
				
			||||||
 | 
					                    (filters.status !== 'DRAFT' && filters.status !== 'SENT'),
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					              ]"
 | 
				
			||||||
 | 
					              href="#"
 | 
				
			||||||
 | 
					              >{{ $t('general.all') }}</a
 | 
				
			||||||
 | 
					            >
 | 
				
			||||||
          </li>
 | 
					          </li>
 | 
				
			||||||
        </ul>
 | 
					        </ul>
 | 
				
			||||||
        <transition name="fade">
 | 
					        <transition name="fade">
 | 
				
			||||||
          <v-dropdown v-if="selectedEstimates.length" :show-arrow="false">
 | 
					          <v-dropdown v-if="selectedEstimates.length" :show-arrow="false">
 | 
				
			||||||
            <span slot="activator" href="#" class="table-actions-button dropdown-toggle">
 | 
					            <span
 | 
				
			||||||
 | 
					              slot="activator"
 | 
				
			||||||
 | 
					              href="#"
 | 
				
			||||||
 | 
					              class="table-actions-button dropdown-toggle"
 | 
				
			||||||
 | 
					            >
 | 
				
			||||||
              {{ $t('general.actions') }}
 | 
					              {{ $t('general.actions') }}
 | 
				
			||||||
            </span>
 | 
					            </span>
 | 
				
			||||||
            <v-dropdown-item>
 | 
					            <v-dropdown-item>
 | 
				
			||||||
              <div class="dropdown-item" @click="removeMultipleEstimates">
 | 
					              <div class="dropdown-item" @click="removeMultipleEstimates">
 | 
				
			||||||
                <font-awesome-icon :icon="['fas', 'trash']" class="dropdown-item-icon" />
 | 
					                <font-awesome-icon
 | 
				
			||||||
 | 
					                  :icon="['fas', 'trash']"
 | 
				
			||||||
 | 
					                  class="dropdown-item-icon"
 | 
				
			||||||
 | 
					                />
 | 
				
			||||||
                {{ $t('general.delete') }}
 | 
					                {{ $t('general.delete') }}
 | 
				
			||||||
              </div>
 | 
					              </div>
 | 
				
			||||||
            </v-dropdown-item>
 | 
					            </v-dropdown-item>
 | 
				
			||||||
@ -153,8 +183,12 @@
 | 
				
			|||||||
          type="checkbox"
 | 
					          type="checkbox"
 | 
				
			||||||
          class="custom-control-input"
 | 
					          class="custom-control-input"
 | 
				
			||||||
          @change="selectAllEstimates"
 | 
					          @change="selectAllEstimates"
 | 
				
			||||||
 | 
					        />
 | 
				
			||||||
 | 
					        <label
 | 
				
			||||||
 | 
					          v-show="!isRequestOngoing"
 | 
				
			||||||
 | 
					          for="select-all"
 | 
				
			||||||
 | 
					          class="custom-control-label selectall"
 | 
				
			||||||
        >
 | 
					        >
 | 
				
			||||||
        <label v-show="!isRequestOngoing" for="select-all" class="custom-control-label selectall">
 | 
					 | 
				
			||||||
          <span class="select-all-label">{{ $t('general.select_all') }} </span>
 | 
					          <span class="select-all-label">{{ $t('general.select_all') }} </span>
 | 
				
			||||||
        </label>
 | 
					        </label>
 | 
				
			||||||
      </div>
 | 
					      </div>
 | 
				
			||||||
@ -178,7 +212,7 @@
 | 
				
			|||||||
                :value="row.id"
 | 
					                :value="row.id"
 | 
				
			||||||
                type="checkbox"
 | 
					                type="checkbox"
 | 
				
			||||||
                class="custom-control-input"
 | 
					                class="custom-control-input"
 | 
				
			||||||
              >
 | 
					              />
 | 
				
			||||||
              <label :for="row.id" class="custom-control-label" />
 | 
					              <label :for="row.id" class="custom-control-label" />
 | 
				
			||||||
            </div>
 | 
					            </div>
 | 
				
			||||||
          </template>
 | 
					          </template>
 | 
				
			||||||
@ -186,30 +220,30 @@
 | 
				
			|||||||
        <table-column
 | 
					        <table-column
 | 
				
			||||||
          :label="$t('estimates.date')"
 | 
					          :label="$t('estimates.date')"
 | 
				
			||||||
          sort-as="estimate_date"
 | 
					          sort-as="estimate_date"
 | 
				
			||||||
          show="formattedEstimateDate" />
 | 
					          show="formattedEstimateDate"
 | 
				
			||||||
 | 
					        />
 | 
				
			||||||
        <table-column
 | 
					        <table-column
 | 
				
			||||||
          :label="$t('estimates.customer')"
 | 
					          :label="$t('estimates.customer')"
 | 
				
			||||||
          sort-as="name"
 | 
					          sort-as="name"
 | 
				
			||||||
          show="name" />
 | 
					          show="name"
 | 
				
			||||||
 | 
					        />
 | 
				
			||||||
        <!-- <table-column
 | 
					        <!-- <table-column
 | 
				
			||||||
          :label="$t('estimates.expiry_date')"
 | 
					          :label="$t('estimates.expiry_date')"
 | 
				
			||||||
          sort-as="expiry_date"
 | 
					          sort-as="expiry_date"
 | 
				
			||||||
          show="formattedExpiryDate" /> -->
 | 
					          show="formattedExpiryDate" /> -->
 | 
				
			||||||
        <table-column
 | 
					        <table-column :label="$t('estimates.status')" show="status">
 | 
				
			||||||
          :label="$t('estimates.status')"
 | 
					          <template slot-scope="row">
 | 
				
			||||||
          show="status" >
 | 
					 | 
				
			||||||
          <template slot-scope="row" >
 | 
					 | 
				
			||||||
            <span> {{ $t('estimates.status') }}</span>
 | 
					            <span> {{ $t('estimates.status') }}</span>
 | 
				
			||||||
            <span :class="'est-status-'+row.status.toLowerCase()">{{ row.status }}</span>
 | 
					            <span :class="'est-status-' + row.status.toLowerCase()">{{
 | 
				
			||||||
 | 
					              row.status
 | 
				
			||||||
 | 
					            }}</span>
 | 
				
			||||||
          </template>
 | 
					          </template>
 | 
				
			||||||
        </table-column>
 | 
					        </table-column>
 | 
				
			||||||
        <table-column
 | 
					        <table-column
 | 
				
			||||||
          :label="$tc('estimates.estimate', 1)"
 | 
					          :label="$tc('estimates.estimate', 1)"
 | 
				
			||||||
          show="estimate_number"/>
 | 
					          show="estimate_number"
 | 
				
			||||||
        <table-column
 | 
					        />
 | 
				
			||||||
          :label="$t('invoices.total')"
 | 
					        <table-column :label="$t('invoices.total')" sort-as="total">
 | 
				
			||||||
          sort-as="total"
 | 
					 | 
				
			||||||
        >
 | 
					 | 
				
			||||||
          <template slot-scope="row">
 | 
					          <template slot-scope="row">
 | 
				
			||||||
            <span> {{ $t('estimates.total') }}</span>
 | 
					            <span> {{ $t('estimates.total') }}</span>
 | 
				
			||||||
            <div v-html="$utils.formatMoney(row.total, row.user.currency)" />
 | 
					            <div v-html="$utils.formatMoney(row.total, row.user.currency)" />
 | 
				
			||||||
@ -227,50 +261,114 @@
 | 
				
			|||||||
                <dot-icon />
 | 
					                <dot-icon />
 | 
				
			||||||
              </a>
 | 
					              </a>
 | 
				
			||||||
              <v-dropdown-item>
 | 
					              <v-dropdown-item>
 | 
				
			||||||
                <router-link :to="{path: `estimates/${row.id}/edit`}" class="dropdown-item">
 | 
					                <router-link
 | 
				
			||||||
                  <font-awesome-icon :icon="['fas', 'pencil-alt']" class="dropdown-item-icon" />
 | 
					                  :to="{ path: `estimates/${row.id}/edit` }"
 | 
				
			||||||
 | 
					                  class="dropdown-item"
 | 
				
			||||||
 | 
					                >
 | 
				
			||||||
 | 
					                  <font-awesome-icon
 | 
				
			||||||
 | 
					                    :icon="['fas', 'pencil-alt']"
 | 
				
			||||||
 | 
					                    class="dropdown-item-icon"
 | 
				
			||||||
 | 
					                  />
 | 
				
			||||||
                  {{ $t('general.edit') }}
 | 
					                  {{ $t('general.edit') }}
 | 
				
			||||||
                </router-link>
 | 
					                </router-link>
 | 
				
			||||||
              </v-dropdown-item>
 | 
					              </v-dropdown-item>
 | 
				
			||||||
              <v-dropdown-item>
 | 
					              <v-dropdown-item>
 | 
				
			||||||
                <div class="dropdown-item" @click="removeEstimate(row.id)">
 | 
					                <div class="dropdown-item" @click="removeEstimate(row.id)">
 | 
				
			||||||
                  <font-awesome-icon :icon="['fas', 'trash']" class="dropdown-item-icon" />
 | 
					                  <font-awesome-icon
 | 
				
			||||||
 | 
					                    :icon="['fas', 'trash']"
 | 
				
			||||||
 | 
					                    class="dropdown-item-icon"
 | 
				
			||||||
 | 
					                  />
 | 
				
			||||||
                  {{ $t('general.delete') }}
 | 
					                  {{ $t('general.delete') }}
 | 
				
			||||||
                </div>
 | 
					                </div>
 | 
				
			||||||
              </v-dropdown-item>
 | 
					              </v-dropdown-item>
 | 
				
			||||||
              <v-dropdown-item>
 | 
					              <v-dropdown-item>
 | 
				
			||||||
                <router-link :to="{path: `estimates/${row.id}/view`}" class="dropdown-item">
 | 
					                <router-link
 | 
				
			||||||
 | 
					                  :to="{ path: `estimates/${row.id}/view` }"
 | 
				
			||||||
 | 
					                  class="dropdown-item"
 | 
				
			||||||
 | 
					                >
 | 
				
			||||||
                  <font-awesome-icon icon="eye" class="dropdown-item-icon" />
 | 
					                  <font-awesome-icon icon="eye" class="dropdown-item-icon" />
 | 
				
			||||||
                  {{ $t('general.view') }}
 | 
					                  {{ $t('general.view') }}
 | 
				
			||||||
                </router-link>
 | 
					                </router-link>
 | 
				
			||||||
              </v-dropdown-item>
 | 
					              </v-dropdown-item>
 | 
				
			||||||
              <v-dropdown-item>
 | 
					              <v-dropdown-item>
 | 
				
			||||||
                <a class="dropdown-item" href="#/" @click="convertInToinvoice(row.id)">
 | 
					                <a
 | 
				
			||||||
                  <font-awesome-icon icon="file-alt" class="dropdown-item-icon" />
 | 
					                  class="dropdown-item"
 | 
				
			||||||
 | 
					                  href="#/"
 | 
				
			||||||
 | 
					                  @click="convertInToinvoice(row.id)"
 | 
				
			||||||
 | 
					                >
 | 
				
			||||||
 | 
					                  <font-awesome-icon
 | 
				
			||||||
 | 
					                    icon="file-alt"
 | 
				
			||||||
 | 
					                    class="dropdown-item-icon"
 | 
				
			||||||
 | 
					                  />
 | 
				
			||||||
                  {{ $t('estimates.convert_to_invoice') }}
 | 
					                  {{ $t('estimates.convert_to_invoice') }}
 | 
				
			||||||
                </a>
 | 
					                </a>
 | 
				
			||||||
              </v-dropdown-item>
 | 
					              </v-dropdown-item>
 | 
				
			||||||
              <v-dropdown-item v-if="row.status !== 'SENT'">
 | 
					              <v-dropdown-item v-if="row.status !== 'SENT'">
 | 
				
			||||||
                <a class="dropdown-item" href="#/" @click.self="onMarkAsSent(row.id)">
 | 
					                <a
 | 
				
			||||||
                  <font-awesome-icon icon="check-circle" class="dropdown-item-icon" />
 | 
					                  class="dropdown-item"
 | 
				
			||||||
 | 
					                  href="#/"
 | 
				
			||||||
 | 
					                  @click.self="onMarkAsSent(row.id)"
 | 
				
			||||||
 | 
					                >
 | 
				
			||||||
 | 
					                  <font-awesome-icon
 | 
				
			||||||
 | 
					                    icon="check-circle"
 | 
				
			||||||
 | 
					                    class="dropdown-item-icon"
 | 
				
			||||||
 | 
					                  />
 | 
				
			||||||
                  {{ $t('estimates.mark_as_sent') }}
 | 
					                  {{ $t('estimates.mark_as_sent') }}
 | 
				
			||||||
                </a>
 | 
					                </a>
 | 
				
			||||||
              </v-dropdown-item>
 | 
					              </v-dropdown-item>
 | 
				
			||||||
              <v-dropdown-item v-if="row.status !== 'SENT'">
 | 
					              <v-dropdown-item v-if="row.status === 'DRAFT'">
 | 
				
			||||||
                <a class="dropdown-item" href="#/" @click.self="sendEstimate(row.id)">
 | 
					                <a
 | 
				
			||||||
                  <font-awesome-icon icon="paper-plane" class="dropdown-item-icon" />
 | 
					                  class="dropdown-item"
 | 
				
			||||||
 | 
					                  href="#/"
 | 
				
			||||||
 | 
					                  @click.self="sendEstimate(row.id)"
 | 
				
			||||||
 | 
					                >
 | 
				
			||||||
 | 
					                  <font-awesome-icon
 | 
				
			||||||
 | 
					                    icon="paper-plane"
 | 
				
			||||||
 | 
					                    class="dropdown-item-icon"
 | 
				
			||||||
 | 
					                  />
 | 
				
			||||||
                  {{ $t('estimates.send_estimate') }}
 | 
					                  {{ $t('estimates.send_estimate') }}
 | 
				
			||||||
                </a>
 | 
					                </a>
 | 
				
			||||||
              </v-dropdown-item>
 | 
					              </v-dropdown-item>
 | 
				
			||||||
 | 
					              <!-- resend estimte -->
 | 
				
			||||||
 | 
					              <v-dropdown-item
 | 
				
			||||||
 | 
					                v-if="row.status == 'SENT' || row.status == 'VIEWED'"
 | 
				
			||||||
 | 
					              >
 | 
				
			||||||
 | 
					                <a
 | 
				
			||||||
 | 
					                  class="dropdown-item"
 | 
				
			||||||
 | 
					                  href="#/"
 | 
				
			||||||
 | 
					                  @click.self="sendEstimate(row.id)"
 | 
				
			||||||
 | 
					                >
 | 
				
			||||||
 | 
					                  <font-awesome-icon
 | 
				
			||||||
 | 
					                    icon="paper-plane"
 | 
				
			||||||
 | 
					                    class="dropdown-item-icon"
 | 
				
			||||||
 | 
					                  />
 | 
				
			||||||
 | 
					                  {{ $t('estimates.resend_estimate') }}
 | 
				
			||||||
 | 
					                </a>
 | 
				
			||||||
 | 
					              </v-dropdown-item>
 | 
				
			||||||
 | 
					              <!--  -->
 | 
				
			||||||
              <v-dropdown-item v-if="row.status !== 'ACCEPTED'">
 | 
					              <v-dropdown-item v-if="row.status !== 'ACCEPTED'">
 | 
				
			||||||
                <a class="dropdown-item" href="#/" @click.self="onMarkAsAccepted(row.id)">
 | 
					                <a
 | 
				
			||||||
                  <font-awesome-icon icon="check-circle" class="dropdown-item-icon" />
 | 
					                  class="dropdown-item"
 | 
				
			||||||
 | 
					                  href="#/"
 | 
				
			||||||
 | 
					                  @click.self="onMarkAsAccepted(row.id)"
 | 
				
			||||||
 | 
					                >
 | 
				
			||||||
 | 
					                  <font-awesome-icon
 | 
				
			||||||
 | 
					                    icon="check-circle"
 | 
				
			||||||
 | 
					                    class="dropdown-item-icon"
 | 
				
			||||||
 | 
					                  />
 | 
				
			||||||
                  {{ $t('estimates.mark_as_accepted') }}
 | 
					                  {{ $t('estimates.mark_as_accepted') }}
 | 
				
			||||||
                </a>
 | 
					                </a>
 | 
				
			||||||
              </v-dropdown-item>
 | 
					              </v-dropdown-item>
 | 
				
			||||||
              <v-dropdown-item v-if="row.status !== 'REJECTED'">
 | 
					              <v-dropdown-item v-if="row.status !== 'REJECTED'">
 | 
				
			||||||
                <a class="dropdown-item" href="#/" @click.self="onMarkAsRejected(row.id)">
 | 
					                <a
 | 
				
			||||||
                  <font-awesome-icon icon="times-circle" class="dropdown-item-icon" />
 | 
					                  class="dropdown-item"
 | 
				
			||||||
 | 
					                  href="#/"
 | 
				
			||||||
 | 
					                  @click.self="onMarkAsRejected(row.id)"
 | 
				
			||||||
 | 
					                >
 | 
				
			||||||
 | 
					                  <font-awesome-icon
 | 
				
			||||||
 | 
					                    icon="times-circle"
 | 
				
			||||||
 | 
					                    class="dropdown-item-icon"
 | 
				
			||||||
 | 
					                  />
 | 
				
			||||||
                  {{ $t('estimates.mark_as_rejected') }}
 | 
					                  {{ $t('estimates.mark_as_rejected') }}
 | 
				
			||||||
                </a>
 | 
					                </a>
 | 
				
			||||||
              </v-dropdown-item>
 | 
					              </v-dropdown-item>
 | 
				
			||||||
 | 
				
			|||||||
@ -38,6 +38,8 @@
 | 
				
			|||||||
              <base-input
 | 
					              <base-input
 | 
				
			||||||
                v-model="item.quantity"
 | 
					                v-model="item.quantity"
 | 
				
			||||||
                :invalid="$v.item.quantity.$error"
 | 
					                :invalid="$v.item.quantity.$error"
 | 
				
			||||||
 | 
					                :is-input-group="!!item.unit_name"
 | 
				
			||||||
 | 
					                :input-group-text="item.unit_name"
 | 
				
			||||||
                type="text"
 | 
					                type="text"
 | 
				
			||||||
                small
 | 
					                small
 | 
				
			||||||
                @keyup="updateItem"
 | 
					                @keyup="updateItem"
 | 
				
			||||||
@ -378,6 +380,7 @@ export default {
 | 
				
			|||||||
      this.item.price = item.price
 | 
					      this.item.price = item.price
 | 
				
			||||||
      this.item.item_id = item.id
 | 
					      this.item.item_id = item.id
 | 
				
			||||||
      this.item.description = item.description
 | 
					      this.item.description = item.description
 | 
				
			||||||
 | 
					      this.item.unit_name = item.unit_name
 | 
				
			||||||
      if (this.taxPerItem === 'YES' && item.taxes) {
 | 
					      if (this.taxPerItem === 'YES' && item.taxes) {
 | 
				
			||||||
        let index = 0
 | 
					        let index = 0
 | 
				
			||||||
        item.taxes.forEach(tax => {
 | 
					        item.taxes.forEach(tax => {
 | 
				
			||||||
 | 
				
			|||||||
@ -12,6 +12,7 @@
 | 
				
			|||||||
      ref="baseSelect"
 | 
					      ref="baseSelect"
 | 
				
			||||||
      v-model="itemSelect"
 | 
					      v-model="itemSelect"
 | 
				
			||||||
      :options="items"
 | 
					      :options="items"
 | 
				
			||||||
 | 
					      :loading="loading"
 | 
				
			||||||
      :show-labels="false"
 | 
					      :show-labels="false"
 | 
				
			||||||
      :preserve-search="true"
 | 
					      :preserve-search="true"
 | 
				
			||||||
      :initial-search="item.name"
 | 
					      :initial-search="item.name"
 | 
				
			||||||
@ -20,7 +21,7 @@
 | 
				
			|||||||
      label="name"
 | 
					      label="name"
 | 
				
			||||||
      class="multi-select-item"
 | 
					      class="multi-select-item"
 | 
				
			||||||
      @value="onTextChange"
 | 
					      @value="onTextChange"
 | 
				
			||||||
      @select="(val) => $emit('select', val)"
 | 
					      @select="onSelect"
 | 
				
			||||||
    >
 | 
					    >
 | 
				
			||||||
      <div slot="afterList">
 | 
					      <div slot="afterList">
 | 
				
			||||||
        <button type="button" class="list-add-button" @click="openItemModal">
 | 
					        <button type="button" class="list-add-button" @click="openItemModal">
 | 
				
			||||||
@ -137,11 +138,15 @@ export default {
 | 
				
			|||||||
    openItemModal () {
 | 
					    openItemModal () {
 | 
				
			||||||
      this.$emit('onSelectItem')
 | 
					      this.$emit('onSelectItem')
 | 
				
			||||||
      this.openModal({
 | 
					      this.openModal({
 | 
				
			||||||
        'title': 'Add Item',
 | 
					        'title': this.$t('items.add_item'),
 | 
				
			||||||
        'componentName': 'ItemModal',
 | 
					        'componentName': 'ItemModal',
 | 
				
			||||||
        'data': {taxPerItem: this.taxPerItem, taxes: this.taxes}
 | 
					        'data': {taxPerItem: this.taxPerItem, taxes: this.taxes}
 | 
				
			||||||
      })
 | 
					      })
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    onSelect(val) {
 | 
				
			||||||
 | 
					      this.$emit('select', val)
 | 
				
			||||||
 | 
					      this.fetchItems()
 | 
				
			||||||
 | 
					    },    
 | 
				
			||||||
    deselectItem () {
 | 
					    deselectItem () {
 | 
				
			||||||
      this.itemSelect = null
 | 
					      this.itemSelect = null
 | 
				
			||||||
      this.$emit('deselect')
 | 
					      this.$emit('deselect')
 | 
				
			||||||
 | 
				
			|||||||
@ -1,7 +1,7 @@
 | 
				
			|||||||
<template>
 | 
					<template>
 | 
				
			||||||
  <div v-if="estimate" class="main-content estimate-view-page">
 | 
					  <div v-if="estimate" class="main-content estimate-view-page">
 | 
				
			||||||
    <div class="page-header">
 | 
					    <div class="page-header">
 | 
				
			||||||
      <h3 class="page-title"> {{ estimate.estimate_number }}</h3>
 | 
					      <h3 class="page-title">{{ estimate.estimate_number }}</h3>
 | 
				
			||||||
      <div class="page-actions row">
 | 
					      <div class="page-actions row">
 | 
				
			||||||
        <div class="col-xs-2 mr-3">
 | 
					        <div class="col-xs-2 mr-3">
 | 
				
			||||||
          <base-button
 | 
					          <base-button
 | 
				
			||||||
@ -26,19 +26,42 @@
 | 
				
			|||||||
            {{ $t('estimates.send_estimate') }}
 | 
					            {{ $t('estimates.send_estimate') }}
 | 
				
			||||||
          </base-button>
 | 
					          </base-button>
 | 
				
			||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
        <v-dropdown :close-on-select="false" align="left" class="filter-container">
 | 
					        <v-dropdown
 | 
				
			||||||
 | 
					          :close-on-select="true"
 | 
				
			||||||
 | 
					          align="left"
 | 
				
			||||||
 | 
					          class="filter-container"
 | 
				
			||||||
 | 
					        >
 | 
				
			||||||
          <a slot="activator" href="#">
 | 
					          <a slot="activator" href="#">
 | 
				
			||||||
            <base-button color="theme">
 | 
					            <base-button color="theme">
 | 
				
			||||||
              <font-awesome-icon icon="ellipsis-h" />
 | 
					              <font-awesome-icon icon="ellipsis-h" />
 | 
				
			||||||
            </base-button>
 | 
					            </base-button>
 | 
				
			||||||
          </a>
 | 
					          </a>
 | 
				
			||||||
          <v-dropdown-item>
 | 
					          <v-dropdown-item>
 | 
				
			||||||
            <router-link :to="{path: `/admin/estimates/${$route.params.id}/edit`}" class="dropdown-item">
 | 
					            <div class="dropdown-item" @click="copyPdfUrl()">
 | 
				
			||||||
              <font-awesome-icon :icon="['fas', 'pencil-alt']" class="dropdown-item-icon"/>
 | 
					              <font-awesome-icon
 | 
				
			||||||
 | 
					                :icon="['fas', 'link']"
 | 
				
			||||||
 | 
					                class="dropdown-item-icon"
 | 
				
			||||||
 | 
					              />
 | 
				
			||||||
 | 
					              {{ $t('general.copy_pdf_url') }}
 | 
				
			||||||
 | 
					            </div>
 | 
				
			||||||
 | 
					            <router-link
 | 
				
			||||||
 | 
					              :to="{ path: `/admin/estimates/${$route.params.id}/edit` }"
 | 
				
			||||||
 | 
					              class="dropdown-item"
 | 
				
			||||||
 | 
					            >
 | 
				
			||||||
 | 
					              <font-awesome-icon
 | 
				
			||||||
 | 
					                :icon="['fas', 'pencil-alt']"
 | 
				
			||||||
 | 
					                class="dropdown-item-icon"
 | 
				
			||||||
 | 
					              />
 | 
				
			||||||
              {{ $t('general.edit') }}
 | 
					              {{ $t('general.edit') }}
 | 
				
			||||||
            </router-link>
 | 
					            </router-link>
 | 
				
			||||||
            <div class="dropdown-item" @click="removeEstimate($route.params.id)">
 | 
					            <div
 | 
				
			||||||
              <font-awesome-icon :icon="['fas', 'trash']" class="dropdown-item-icon" />
 | 
					              class="dropdown-item"
 | 
				
			||||||
 | 
					              @click="removeEstimate($route.params.id)"
 | 
				
			||||||
 | 
					            >
 | 
				
			||||||
 | 
					              <font-awesome-icon
 | 
				
			||||||
 | 
					                :icon="['fas', 'trash']"
 | 
				
			||||||
 | 
					                class="dropdown-item-icon"
 | 
				
			||||||
 | 
					              />
 | 
				
			||||||
              {{ $t('general.delete') }}
 | 
					              {{ $t('general.delete') }}
 | 
				
			||||||
            </div>
 | 
					            </div>
 | 
				
			||||||
          </v-dropdown-item>
 | 
					          </v-dropdown-item>
 | 
				
			||||||
@ -57,14 +80,18 @@
 | 
				
			|||||||
          align-icon="right"
 | 
					          align-icon="right"
 | 
				
			||||||
          @input="onSearched()"
 | 
					          @input="onSearched()"
 | 
				
			||||||
        />
 | 
					        />
 | 
				
			||||||
        <div
 | 
					        <div class="btn-group ml-3" role="group" aria-label="First group">
 | 
				
			||||||
          class="btn-group ml-3"
 | 
					          <v-dropdown
 | 
				
			||||||
          role="group"
 | 
					            :close-on-select="false"
 | 
				
			||||||
          aria-label="First group"
 | 
					            align="left"
 | 
				
			||||||
 | 
					            class="filter-container"
 | 
				
			||||||
          >
 | 
					          >
 | 
				
			||||||
          <v-dropdown :close-on-select="false" align="left" class="filter-container">
 | 
					 | 
				
			||||||
            <a slot="activator" href="#">
 | 
					            <a slot="activator" href="#">
 | 
				
			||||||
              <base-button class="inv-button inv-filter-fields-btn" color="default" size="medium">
 | 
					              <base-button
 | 
				
			||||||
 | 
					                class="inv-button inv-filter-fields-btn"
 | 
				
			||||||
 | 
					                color="default"
 | 
				
			||||||
 | 
					                size="medium"
 | 
				
			||||||
 | 
					              >
 | 
				
			||||||
                <font-awesome-icon icon="filter" />
 | 
					                <font-awesome-icon icon="filter" />
 | 
				
			||||||
              </base-button>
 | 
					              </base-button>
 | 
				
			||||||
            </a>
 | 
					            </a>
 | 
				
			||||||
@ -80,8 +107,10 @@
 | 
				
			|||||||
                class="inv-radio"
 | 
					                class="inv-radio"
 | 
				
			||||||
                value="estimate_date"
 | 
					                value="estimate_date"
 | 
				
			||||||
                @change="onSearched"
 | 
					                @change="onSearched"
 | 
				
			||||||
              >
 | 
					              />
 | 
				
			||||||
              <label class="inv-label" for="filter_estimate_date">{{ $t('reports.estimates.estimate_date') }}</label>
 | 
					              <label class="inv-label" for="filter_estimate_date">{{
 | 
				
			||||||
 | 
					                $t('reports.estimates.estimate_date')
 | 
				
			||||||
 | 
					              }}</label>
 | 
				
			||||||
            </div>
 | 
					            </div>
 | 
				
			||||||
            <div class="filter-items">
 | 
					            <div class="filter-items">
 | 
				
			||||||
              <input
 | 
					              <input
 | 
				
			||||||
@ -92,8 +121,10 @@
 | 
				
			|||||||
                class="inv-radio"
 | 
					                class="inv-radio"
 | 
				
			||||||
                value="expiry_date"
 | 
					                value="expiry_date"
 | 
				
			||||||
                @change="onSearched"
 | 
					                @change="onSearched"
 | 
				
			||||||
              >
 | 
					              />
 | 
				
			||||||
              <label class="inv-label" for="filter_due_date">{{ $t('estimates.due_date') }}</label>
 | 
					              <label class="inv-label" for="filter_due_date">{{
 | 
				
			||||||
 | 
					                $t('estimates.due_date')
 | 
				
			||||||
 | 
					              }}</label>
 | 
				
			||||||
            </div>
 | 
					            </div>
 | 
				
			||||||
            <div class="filter-items">
 | 
					            <div class="filter-items">
 | 
				
			||||||
              <input
 | 
					              <input
 | 
				
			||||||
@ -104,11 +135,19 @@
 | 
				
			|||||||
                class="inv-radio"
 | 
					                class="inv-radio"
 | 
				
			||||||
                value="estimate_number"
 | 
					                value="estimate_number"
 | 
				
			||||||
                @change="onSearched"
 | 
					                @change="onSearched"
 | 
				
			||||||
              >
 | 
					              />
 | 
				
			||||||
              <label class="inv-label" for="filter_estimate_number">{{ $t('estimates.estimate_number') }}</label>
 | 
					              <label class="inv-label" for="filter_estimate_number">{{
 | 
				
			||||||
 | 
					                $t('estimates.estimate_number')
 | 
				
			||||||
 | 
					              }}</label>
 | 
				
			||||||
            </div>
 | 
					            </div>
 | 
				
			||||||
          </v-dropdown>
 | 
					          </v-dropdown>
 | 
				
			||||||
          <base-button v-tooltip.top-center="{ content: getOrderName }" class="inv-button inv-filter-sorting-btn" color="default" size="medium" @click="sortData">
 | 
					          <base-button
 | 
				
			||||||
 | 
					            v-tooltip.top-center="{ content: getOrderName }"
 | 
				
			||||||
 | 
					            class="inv-button inv-filter-sorting-btn"
 | 
				
			||||||
 | 
					            color="default"
 | 
				
			||||||
 | 
					            size="medium"
 | 
				
			||||||
 | 
					            @click="sortData"
 | 
				
			||||||
 | 
					          >
 | 
				
			||||||
            <font-awesome-icon v-if="getOrderBy" icon="sort-amount-up" />
 | 
					            <font-awesome-icon v-if="getOrderBy" icon="sort-amount-up" />
 | 
				
			||||||
            <font-awesome-icon v-else icon="sort-amount-down" />
 | 
					            <font-awesome-icon v-else icon="sort-amount-down" />
 | 
				
			||||||
          </base-button>
 | 
					          </base-button>
 | 
				
			||||||
@ -116,7 +155,7 @@
 | 
				
			|||||||
      </div>
 | 
					      </div>
 | 
				
			||||||
      <div class="side-content">
 | 
					      <div class="side-content">
 | 
				
			||||||
        <router-link
 | 
					        <router-link
 | 
				
			||||||
          v-for="(estimate,index) in estimates"
 | 
					          v-for="(estimate, index) in estimates"
 | 
				
			||||||
          :to="`/admin/estimates/${estimate.id}/view`"
 | 
					          :to="`/admin/estimates/${estimate.id}/view`"
 | 
				
			||||||
          :key="index"
 | 
					          :key="index"
 | 
				
			||||||
          class="side-estimate"
 | 
					          class="side-estimate"
 | 
				
			||||||
@ -124,10 +163,20 @@
 | 
				
			|||||||
          <div class="left">
 | 
					          <div class="left">
 | 
				
			||||||
            <div class="inv-name">{{ estimate.user.name }}</div>
 | 
					            <div class="inv-name">{{ estimate.user.name }}</div>
 | 
				
			||||||
            <div class="inv-number">{{ estimate.estimate_number }}</div>
 | 
					            <div class="inv-number">{{ estimate.estimate_number }}</div>
 | 
				
			||||||
            <div :class="'est-status-'+estimate.status.toLowerCase()" class="inv-status">{{ estimate.status }}</div>
 | 
					            <div
 | 
				
			||||||
 | 
					              :class="'est-status-' + estimate.status.toLowerCase()"
 | 
				
			||||||
 | 
					              class="inv-status"
 | 
				
			||||||
 | 
					            >
 | 
				
			||||||
 | 
					              {{ estimate.status }}
 | 
				
			||||||
 | 
					            </div>
 | 
				
			||||||
          </div>
 | 
					          </div>
 | 
				
			||||||
          <div class="right">
 | 
					          <div class="right">
 | 
				
			||||||
            <div class="inv-amount" v-html="$utils.formatMoney(estimate.total, estimate.user.currency)" />
 | 
					            <div
 | 
				
			||||||
 | 
					              class="inv-amount"
 | 
				
			||||||
 | 
					              v-html="
 | 
				
			||||||
 | 
					                $utils.formatMoney(estimate.total, estimate.user.currency)
 | 
				
			||||||
 | 
					              "
 | 
				
			||||||
 | 
					            />
 | 
				
			||||||
            <div class="inv-date">{{ estimate.formattedEstimateDate }}</div>
 | 
					            <div class="inv-date">{{ estimate.formattedEstimateDate }}</div>
 | 
				
			||||||
          </div>
 | 
					          </div>
 | 
				
			||||||
        </router-link>
 | 
					        </router-link>
 | 
				
			||||||
@ -137,7 +186,7 @@
 | 
				
			|||||||
      </div>
 | 
					      </div>
 | 
				
			||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
    <div class="estimate-view-page-container">
 | 
					    <div class="estimate-view-page-container">
 | 
				
			||||||
      <iframe :src="`${shareableLink}`" class="frame-style"/>
 | 
					      <iframe :src="`${shareableLink}`" class="frame-style" />
 | 
				
			||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
  </div>
 | 
					  </div>
 | 
				
			||||||
</template>
 | 
					</template>
 | 
				
			||||||
@ -289,6 +338,13 @@ export default {
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
      })
 | 
					      })
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    copyPdfUrl () {
 | 
				
			||||||
 | 
					      let pdfUrl = `${window.location.origin}/estimates/pdf/${this.estimate.unique_hash}`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      let response = this.$utils.copyTextToClipboard(pdfUrl)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      window.toastr['success'](this.$tc('Copied PDF url to clipboard!'))
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    async removeEstimate (id) {
 | 
					    async removeEstimate (id) {
 | 
				
			||||||
      window.swal({
 | 
					      window.swal({
 | 
				
			||||||
        title: 'Deleted',
 | 
					        title: 'Deleted',
 | 
				
			||||||
 | 
				
			|||||||
@ -1,19 +1,15 @@
 | 
				
			|||||||
<template>
 | 
					<template>
 | 
				
			||||||
  <div class="invoice-index-page invoices main-content">
 | 
					  <div class="invoice-index-page invoices main-content">
 | 
				
			||||||
    <div class="page-header">
 | 
					    <div class="page-header">
 | 
				
			||||||
      <h3 class="page-title"> {{ $t('invoices.title') }}</h3>
 | 
					      <h3 class="page-title">{{ $t('invoices.title') }}</h3>
 | 
				
			||||||
      <ol class="breadcrumb">
 | 
					      <ol class="breadcrumb">
 | 
				
			||||||
        <li class="breadcrumb-item">
 | 
					        <li class="breadcrumb-item">
 | 
				
			||||||
          <router-link
 | 
					          <router-link slot="item-title" to="dashboard">
 | 
				
			||||||
            slot="item-title"
 | 
					 | 
				
			||||||
            to="dashboard">
 | 
					 | 
				
			||||||
            {{ $t('general.home') }}
 | 
					            {{ $t('general.home') }}
 | 
				
			||||||
          </router-link>
 | 
					          </router-link>
 | 
				
			||||||
        </li>
 | 
					        </li>
 | 
				
			||||||
        <li class="breadcrumb-item">
 | 
					        <li class="breadcrumb-item">
 | 
				
			||||||
          <router-link
 | 
					          <router-link slot="item-title" to="#">
 | 
				
			||||||
            slot="item-title"
 | 
					 | 
				
			||||||
            to="#">
 | 
					 | 
				
			||||||
            {{ $tc('invoices.invoice', 2) }}
 | 
					            {{ $tc('invoices.invoice', 2) }}
 | 
				
			||||||
          </router-link>
 | 
					          </router-link>
 | 
				
			||||||
        </li>
 | 
					        </li>
 | 
				
			||||||
@ -32,7 +28,11 @@
 | 
				
			|||||||
            {{ $t('general.filter') }}
 | 
					            {{ $t('general.filter') }}
 | 
				
			||||||
          </base-button>
 | 
					          </base-button>
 | 
				
			||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
        <router-link slot="item-title" class="col-xs-2" to="/admin/invoices/create">
 | 
					        <router-link
 | 
				
			||||||
 | 
					          slot="item-title"
 | 
				
			||||||
 | 
					          class="col-xs-2"
 | 
				
			||||||
 | 
					          to="/admin/invoices/create"
 | 
				
			||||||
 | 
					        >
 | 
				
			||||||
          <base-button size="large" icon="plus" color="theme">
 | 
					          <base-button size="large" icon="plus" color="theme">
 | 
				
			||||||
            {{ $t('invoices.new_invoice') }}
 | 
					            {{ $t('invoices.new_invoice') }}
 | 
				
			||||||
          </base-button>
 | 
					          </base-button>
 | 
				
			||||||
@ -44,7 +44,7 @@
 | 
				
			|||||||
      <div v-show="showFilters" class="filter-section">
 | 
					      <div v-show="showFilters" class="filter-section">
 | 
				
			||||||
        <div class="filter-container">
 | 
					        <div class="filter-container">
 | 
				
			||||||
          <div class="filter-customer">
 | 
					          <div class="filter-customer">
 | 
				
			||||||
            <label>{{ $tc('customers.customer',1) }} </label>
 | 
					            <label>{{ $tc('customers.customer', 1) }} </label>
 | 
				
			||||||
            <base-customer-select
 | 
					            <base-customer-select
 | 
				
			||||||
              ref="customerSelect"
 | 
					              ref="customerSelect"
 | 
				
			||||||
              @select="onSelectCustomer"
 | 
					              @select="onSelectCustomer"
 | 
				
			||||||
@ -88,22 +88,29 @@
 | 
				
			|||||||
          </div>
 | 
					          </div>
 | 
				
			||||||
          <div class="filter-invoice">
 | 
					          <div class="filter-invoice">
 | 
				
			||||||
            <label>{{ $t('invoices.invoice_number') }}</label>
 | 
					            <label>{{ $t('invoices.invoice_number') }}</label>
 | 
				
			||||||
            <base-input
 | 
					            <base-input v-model="filters.invoice_number" icon="hashtag" />
 | 
				
			||||||
              v-model="filters.invoice_number"
 | 
					 | 
				
			||||||
              icon="hashtag"/>
 | 
					 | 
				
			||||||
          </div>
 | 
					          </div>
 | 
				
			||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
        <label class="clear-filter" @click="clearFilter">{{ $t('general.clear_all') }}</label>
 | 
					        <label class="clear-filter" @click="clearFilter">{{
 | 
				
			||||||
 | 
					          $t('general.clear_all')
 | 
				
			||||||
 | 
					        }}</label>
 | 
				
			||||||
      </div>
 | 
					      </div>
 | 
				
			||||||
    </transition>
 | 
					    </transition>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    <div v-cloak v-show="showEmptyScreen" class="col-xs-1 no-data-info" align="center">
 | 
					    <div
 | 
				
			||||||
      <moon-walker-icon class="mt-5 mb-4"/>
 | 
					      v-cloak
 | 
				
			||||||
 | 
					      v-show="showEmptyScreen"
 | 
				
			||||||
 | 
					      class="col-xs-1 no-data-info"
 | 
				
			||||||
 | 
					      align="center"
 | 
				
			||||||
 | 
					    >
 | 
				
			||||||
 | 
					      <moon-walker-icon class="mt-5 mb-4" />
 | 
				
			||||||
      <div class="row" align="center">
 | 
					      <div class="row" align="center">
 | 
				
			||||||
        <label class="col title">{{ $t('invoices.no_invoices') }}</label>
 | 
					        <label class="col title">{{ $t('invoices.no_invoices') }}</label>
 | 
				
			||||||
      </div>
 | 
					      </div>
 | 
				
			||||||
      <div class="row">
 | 
					      <div class="row">
 | 
				
			||||||
        <label class="description col mt-1" align="center">{{ $t('invoices.list_of_invoices') }}</label>
 | 
					        <label class="description col mt-1" align="center">{{
 | 
				
			||||||
 | 
					          $t('invoices.list_of_invoices')
 | 
				
			||||||
 | 
					        }}</label>
 | 
				
			||||||
      </div>
 | 
					      </div>
 | 
				
			||||||
      <div class="btn-container">
 | 
					      <div class="btn-container">
 | 
				
			||||||
        <base-button
 | 
					        <base-button
 | 
				
			||||||
@ -120,28 +127,65 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    <div v-show="!showEmptyScreen" class="table-container">
 | 
					    <div v-show="!showEmptyScreen" class="table-container">
 | 
				
			||||||
      <div class="table-actions mt-5">
 | 
					      <div class="table-actions mt-5">
 | 
				
			||||||
        <p class="table-stats">{{ $t('general.showing') }}: <b>{{ invoices.length }}</b> {{ $t('general.of') }} <b>{{ totalInvoices }}</b></p>
 | 
					        <p class="table-stats">
 | 
				
			||||||
 | 
					          {{ $t('general.showing') }}: <b>{{ invoices.length }}</b>
 | 
				
			||||||
 | 
					          {{ $t('general.of') }} <b>{{ totalInvoices }}</b>
 | 
				
			||||||
 | 
					        </p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        <!-- Tabs -->
 | 
					        <!-- Tabs -->
 | 
				
			||||||
        <ul class="tabs">
 | 
					        <ul class="tabs">
 | 
				
			||||||
          <li class="tab" @click="getStatus('UNPAID')">
 | 
					          <li class="tab" @click="getStatus('UNPAID')">
 | 
				
			||||||
            <a :class="['tab-link', {'a-active': filters.status.value === 'UNPAID'}]" href="#" >{{ $t('general.due') }}</a>
 | 
					            <a
 | 
				
			||||||
 | 
					              :class="[
 | 
				
			||||||
 | 
					                'tab-link',
 | 
				
			||||||
 | 
					                { 'a-active': filters.status.value === 'UNPAID' },
 | 
				
			||||||
 | 
					              ]"
 | 
				
			||||||
 | 
					              href="#"
 | 
				
			||||||
 | 
					              >{{ $t('general.due') }}</a
 | 
				
			||||||
 | 
					            >
 | 
				
			||||||
          </li>
 | 
					          </li>
 | 
				
			||||||
          <li class="tab" @click="getStatus('DRAFT')">
 | 
					          <li class="tab" @click="getStatus('DRAFT')">
 | 
				
			||||||
            <a :class="['tab-link', {'a-active': filters.status.value === 'DRAFT'}]" href="#">{{ $t('general.draft') }}</a>
 | 
					            <a
 | 
				
			||||||
 | 
					              :class="[
 | 
				
			||||||
 | 
					                'tab-link',
 | 
				
			||||||
 | 
					                { 'a-active': filters.status.value === 'DRAFT' },
 | 
				
			||||||
 | 
					              ]"
 | 
				
			||||||
 | 
					              href="#"
 | 
				
			||||||
 | 
					              >{{ $t('general.draft') }}</a
 | 
				
			||||||
 | 
					            >
 | 
				
			||||||
          </li>
 | 
					          </li>
 | 
				
			||||||
          <li class="tab" @click="getStatus('')">
 | 
					          <li class="tab" @click="getStatus('')">
 | 
				
			||||||
            <a :class="['tab-link', {'a-active': filters.status.value === '' || filters.status.value === null || filters.status.value !== 'DRAFT' && filters.status.value !== 'UNPAID'}]" href="#">{{ $t('general.all') }}</a>
 | 
					            <a
 | 
				
			||||||
 | 
					              :class="[
 | 
				
			||||||
 | 
					                'tab-link',
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                  'a-active':
 | 
				
			||||||
 | 
					                    filters.status.value === '' ||
 | 
				
			||||||
 | 
					                    filters.status.value === null ||
 | 
				
			||||||
 | 
					                    (filters.status.value !== 'DRAFT' &&
 | 
				
			||||||
 | 
					                      filters.status.value !== 'UNPAID'),
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					              ]"
 | 
				
			||||||
 | 
					              href="#"
 | 
				
			||||||
 | 
					              >{{ $t('general.all') }}</a
 | 
				
			||||||
 | 
					            >
 | 
				
			||||||
          </li>
 | 
					          </li>
 | 
				
			||||||
        </ul>
 | 
					        </ul>
 | 
				
			||||||
        <transition name="fade">
 | 
					        <transition name="fade">
 | 
				
			||||||
          <v-dropdown v-if="selectedInvoices.length" :show-arrow="false">
 | 
					          <v-dropdown v-if="selectedInvoices.length" :show-arrow="false">
 | 
				
			||||||
            <span slot="activator" href="#" class="table-actions-button dropdown-toggle">
 | 
					            <span
 | 
				
			||||||
 | 
					              slot="activator"
 | 
				
			||||||
 | 
					              href="#"
 | 
				
			||||||
 | 
					              class="table-actions-button dropdown-toggle"
 | 
				
			||||||
 | 
					            >
 | 
				
			||||||
              {{ $t('general.actions') }}
 | 
					              {{ $t('general.actions') }}
 | 
				
			||||||
            </span>
 | 
					            </span>
 | 
				
			||||||
            <v-dropdown-item>
 | 
					            <v-dropdown-item>
 | 
				
			||||||
              <div class="dropdown-item" @click="removeMultipleInvoices">
 | 
					              <div class="dropdown-item" @click="removeMultipleInvoices">
 | 
				
			||||||
                <font-awesome-icon :icon="['fas', 'trash']" class="dropdown-item-icon" />
 | 
					                <font-awesome-icon
 | 
				
			||||||
 | 
					                  :icon="['fas', 'trash']"
 | 
				
			||||||
 | 
					                  class="dropdown-item-icon"
 | 
				
			||||||
 | 
					                />
 | 
				
			||||||
                {{ $t('general.delete') }}
 | 
					                {{ $t('general.delete') }}
 | 
				
			||||||
              </div>
 | 
					              </div>
 | 
				
			||||||
            </v-dropdown-item>
 | 
					            </v-dropdown-item>
 | 
				
			||||||
@ -155,8 +199,12 @@
 | 
				
			|||||||
          type="checkbox"
 | 
					          type="checkbox"
 | 
				
			||||||
          class="custom-control-input"
 | 
					          class="custom-control-input"
 | 
				
			||||||
          @change="selectAllInvoices"
 | 
					          @change="selectAllInvoices"
 | 
				
			||||||
 | 
					        />
 | 
				
			||||||
 | 
					        <label
 | 
				
			||||||
 | 
					          v-show="!isRequestOngoing"
 | 
				
			||||||
 | 
					          for="select-all"
 | 
				
			||||||
 | 
					          class="custom-control-label selectall"
 | 
				
			||||||
        >
 | 
					        >
 | 
				
			||||||
        <label v-show="!isRequestOngoing" for="select-all" class="custom-control-label selectall">
 | 
					 | 
				
			||||||
          <span class="select-all-label">{{ $t('general.select_all') }} </span>
 | 
					          <span class="select-all-label">{{ $t('general.select_all') }} </span>
 | 
				
			||||||
        </label>
 | 
					        </label>
 | 
				
			||||||
      </div>
 | 
					      </div>
 | 
				
			||||||
@ -180,8 +228,8 @@
 | 
				
			|||||||
                :value="row.id"
 | 
					                :value="row.id"
 | 
				
			||||||
                type="checkbox"
 | 
					                type="checkbox"
 | 
				
			||||||
                class="custom-control-input"
 | 
					                class="custom-control-input"
 | 
				
			||||||
              >
 | 
					              />
 | 
				
			||||||
              <label :for="row.id" class="custom-control-label"/>
 | 
					              <label :for="row.id" class="custom-control-label" />
 | 
				
			||||||
            </div>
 | 
					            </div>
 | 
				
			||||||
          </template>
 | 
					          </template>
 | 
				
			||||||
        </table-column>
 | 
					        </table-column>
 | 
				
			||||||
@ -195,35 +243,33 @@
 | 
				
			|||||||
          width="20%"
 | 
					          width="20%"
 | 
				
			||||||
          show="name"
 | 
					          show="name"
 | 
				
			||||||
        />
 | 
					        />
 | 
				
			||||||
        <table-column
 | 
					        <table-column :label="$t('invoices.status')" sort-as="status">
 | 
				
			||||||
          :label="$t('invoices.status')"
 | 
					          <template slot-scope="row">
 | 
				
			||||||
          sort-as="status"
 | 
					 | 
				
			||||||
        >
 | 
					 | 
				
			||||||
          <template slot-scope="row" >
 | 
					 | 
				
			||||||
            <span> {{ $t('invoices.status') }}</span>
 | 
					            <span> {{ $t('invoices.status') }}</span>
 | 
				
			||||||
            <span :class="'inv-status-'+row.status.toLowerCase()">{{ (row.status != 'PARTIALLY_PAID')? row.status : row.status.replace('_', ' ') }}</span>
 | 
					            <span :class="'inv-status-' + row.status.toLowerCase()">{{
 | 
				
			||||||
 | 
					              row.status != 'PARTIALLY_PAID'
 | 
				
			||||||
 | 
					                ? row.status
 | 
				
			||||||
 | 
					                : row.status.replace('_', ' ')
 | 
				
			||||||
 | 
					            }}</span>
 | 
				
			||||||
          </template>
 | 
					          </template>
 | 
				
			||||||
        </table-column>
 | 
					        </table-column>
 | 
				
			||||||
        <table-column
 | 
					        <table-column :label="$t('invoices.paid_status')" sort-as="paid_status">
 | 
				
			||||||
          :label="$t('invoices.paid_status')"
 | 
					 | 
				
			||||||
          sort-as="paid_status"
 | 
					 | 
				
			||||||
        >
 | 
					 | 
				
			||||||
          <template slot-scope="row">
 | 
					          <template slot-scope="row">
 | 
				
			||||||
            <span>{{ $t('invoices.paid_status') }}</span>
 | 
					            <span>{{ $t('invoices.paid_status') }}</span>
 | 
				
			||||||
            <span :class="'inv-status-'+row.paid_status.toLowerCase()">{{ (row.paid_status != 'PARTIALLY_PAID')? row.paid_status : row.paid_status.replace('_', ' ') }}</span>
 | 
					            <span :class="'inv-status-' + row.paid_status.toLowerCase()">{{
 | 
				
			||||||
 | 
					              row.paid_status != 'PARTIALLY_PAID'
 | 
				
			||||||
 | 
					                ? row.paid_status
 | 
				
			||||||
 | 
					                : row.paid_status.replace('_', ' ')
 | 
				
			||||||
 | 
					            }}</span>
 | 
				
			||||||
          </template>
 | 
					          </template>
 | 
				
			||||||
        </table-column>
 | 
					        </table-column>
 | 
				
			||||||
        <table-column
 | 
					        <table-column :label="$t('invoices.number')" show="invoice_number" />
 | 
				
			||||||
          :label="$t('invoices.number')"
 | 
					        <table-column :label="$t('invoices.amount_due')" sort-as="due_amount">
 | 
				
			||||||
          show="invoice_number"
 | 
					 | 
				
			||||||
        />
 | 
					 | 
				
			||||||
        <table-column
 | 
					 | 
				
			||||||
          :label="$t('invoices.amount_due')"
 | 
					 | 
				
			||||||
          sort-as="due_amount"
 | 
					 | 
				
			||||||
        >
 | 
					 | 
				
			||||||
          <template slot-scope="row">
 | 
					          <template slot-scope="row">
 | 
				
			||||||
            <span>{{ $t('invoices.amount_due') }}</span>
 | 
					            <span>{{ $t('invoices.amount_due') }}</span>
 | 
				
			||||||
            <div v-html="$utils.formatMoney(row.due_amount, row.user.currency)"/>
 | 
					            <div
 | 
				
			||||||
 | 
					              v-html="$utils.formatMoney(row.due_amount, row.user.currency)"
 | 
				
			||||||
 | 
					            />
 | 
				
			||||||
          </template>
 | 
					          </template>
 | 
				
			||||||
        </table-column>
 | 
					        </table-column>
 | 
				
			||||||
        <table-column
 | 
					        <table-column
 | 
				
			||||||
@ -238,42 +284,91 @@
 | 
				
			|||||||
                <dot-icon />
 | 
					                <dot-icon />
 | 
				
			||||||
              </a>
 | 
					              </a>
 | 
				
			||||||
              <v-dropdown-item>
 | 
					              <v-dropdown-item>
 | 
				
			||||||
                <router-link :to="{path: `invoices/${row.id}/edit`}" class="dropdown-item">
 | 
					                <router-link
 | 
				
			||||||
                  <font-awesome-icon :icon="['fas', 'pencil-alt']" class="dropdown-item-icon"/>
 | 
					                  :to="{ path: `invoices/${row.id}/edit` }"
 | 
				
			||||||
 | 
					                  class="dropdown-item"
 | 
				
			||||||
 | 
					                >
 | 
				
			||||||
 | 
					                  <font-awesome-icon
 | 
				
			||||||
 | 
					                    :icon="['fas', 'pencil-alt']"
 | 
				
			||||||
 | 
					                    class="dropdown-item-icon"
 | 
				
			||||||
 | 
					                  />
 | 
				
			||||||
                  {{ $t('general.edit') }}
 | 
					                  {{ $t('general.edit') }}
 | 
				
			||||||
                </router-link>
 | 
					                </router-link>
 | 
				
			||||||
                <router-link :to="{path: `invoices/${row.id}/view`}" class="dropdown-item">
 | 
					                <router-link
 | 
				
			||||||
 | 
					                  :to="{ path: `invoices/${row.id}/view` }"
 | 
				
			||||||
 | 
					                  class="dropdown-item"
 | 
				
			||||||
 | 
					                >
 | 
				
			||||||
                  <font-awesome-icon icon="eye" class="dropdown-item-icon" />
 | 
					                  <font-awesome-icon icon="eye" class="dropdown-item-icon" />
 | 
				
			||||||
                  {{ $t('invoices.view') }}
 | 
					                  {{ $t('invoices.view') }}
 | 
				
			||||||
                </router-link>
 | 
					                </router-link>
 | 
				
			||||||
              </v-dropdown-item>
 | 
					              </v-dropdown-item>
 | 
				
			||||||
              <v-dropdown-item v-if="row.status == 'DRAFT'">
 | 
					              <v-dropdown-item v-if="row.status == 'DRAFT'">
 | 
				
			||||||
                <a class="dropdown-item" href="#/" @click="sendInvoice(row.id)" >
 | 
					                <a class="dropdown-item" href="#/" @click="sendInvoice(row.id)">
 | 
				
			||||||
                  <font-awesome-icon icon="paper-plane" class="dropdown-item-icon" />
 | 
					                  <font-awesome-icon
 | 
				
			||||||
 | 
					                    icon="paper-plane"
 | 
				
			||||||
 | 
					                    class="dropdown-item-icon"
 | 
				
			||||||
 | 
					                  />
 | 
				
			||||||
                  {{ $t('invoices.send_invoice') }}
 | 
					                  {{ $t('invoices.send_invoice') }}
 | 
				
			||||||
                </a>
 | 
					                </a>
 | 
				
			||||||
              </v-dropdown-item>
 | 
					              </v-dropdown-item>
 | 
				
			||||||
 | 
					              <v-dropdown-item
 | 
				
			||||||
 | 
					                v-if="row.status === 'SENT' || row.status === 'VIEWED'"
 | 
				
			||||||
 | 
					              >
 | 
				
			||||||
 | 
					                <a class="dropdown-item" href="#/" @click="sendInvoice(row.id)">
 | 
				
			||||||
 | 
					                  <font-awesome-icon
 | 
				
			||||||
 | 
					                    icon="paper-plane"
 | 
				
			||||||
 | 
					                    class="dropdown-item-icon"
 | 
				
			||||||
 | 
					                  />
 | 
				
			||||||
 | 
					                  {{ $t('invoices.resend_invoice') }}
 | 
				
			||||||
 | 
					                </a>
 | 
				
			||||||
 | 
					              </v-dropdown-item>
 | 
				
			||||||
              <v-dropdown-item v-if="row.status == 'DRAFT'">
 | 
					              <v-dropdown-item v-if="row.status == 'DRAFT'">
 | 
				
			||||||
                <a class="dropdown-item" href="#/" @click="markInvoiceAsSent(row.id)">
 | 
					                <a
 | 
				
			||||||
                  <font-awesome-icon icon="check-circle" class="dropdown-item-icon" />
 | 
					                  class="dropdown-item"
 | 
				
			||||||
 | 
					                  href="#/"
 | 
				
			||||||
 | 
					                  @click="markInvoiceAsSent(row.id)"
 | 
				
			||||||
 | 
					                >
 | 
				
			||||||
 | 
					                  <font-awesome-icon
 | 
				
			||||||
 | 
					                    icon="check-circle"
 | 
				
			||||||
 | 
					                    class="dropdown-item-icon"
 | 
				
			||||||
 | 
					                  />
 | 
				
			||||||
                  {{ $t('invoices.mark_as_sent') }}
 | 
					                  {{ $t('invoices.mark_as_sent') }}
 | 
				
			||||||
                </a>
 | 
					                </a>
 | 
				
			||||||
              </v-dropdown-item>
 | 
					              </v-dropdown-item>
 | 
				
			||||||
              <v-dropdown-item v-if="row.status === 'SENT' || row.status === 'VIEWED' || row.status === 'OVERDUE'">
 | 
					              <v-dropdown-item
 | 
				
			||||||
                <router-link :to="`/admin/payments/${row.id}/create`" class="dropdown-item">
 | 
					                v-if="
 | 
				
			||||||
                  <font-awesome-icon :icon="['fas', 'credit-card']" class="dropdown-item-icon"/>
 | 
					                  row.status === 'SENT' ||
 | 
				
			||||||
 | 
					                  row.status === 'VIEWED' ||
 | 
				
			||||||
 | 
					                  row.status === 'OVERDUE'
 | 
				
			||||||
 | 
					                "
 | 
				
			||||||
 | 
					              >
 | 
				
			||||||
 | 
					                <router-link
 | 
				
			||||||
 | 
					                  :to="`/admin/payments/${row.id}/create`"
 | 
				
			||||||
 | 
					                  class="dropdown-item"
 | 
				
			||||||
 | 
					                >
 | 
				
			||||||
 | 
					                  <font-awesome-icon
 | 
				
			||||||
 | 
					                    :icon="['fas', 'credit-card']"
 | 
				
			||||||
 | 
					                    class="dropdown-item-icon"
 | 
				
			||||||
 | 
					                  />
 | 
				
			||||||
                  {{ $t('payments.record_payment') }}
 | 
					                  {{ $t('payments.record_payment') }}
 | 
				
			||||||
                </router-link>
 | 
					                </router-link>
 | 
				
			||||||
              </v-dropdown-item>
 | 
					              </v-dropdown-item>
 | 
				
			||||||
              <v-dropdown-item>
 | 
					              <v-dropdown-item>
 | 
				
			||||||
                <a class="dropdown-item" href="#/" @click="onCloneInvoice(row.id)">
 | 
					                <a
 | 
				
			||||||
 | 
					                  class="dropdown-item"
 | 
				
			||||||
 | 
					                  href="#/"
 | 
				
			||||||
 | 
					                  @click="onCloneInvoice(row.id)"
 | 
				
			||||||
 | 
					                >
 | 
				
			||||||
                  <font-awesome-icon icon="copy" class="dropdown-item-icon" />
 | 
					                  <font-awesome-icon icon="copy" class="dropdown-item-icon" />
 | 
				
			||||||
                  {{ $t('invoices.clone_invoice') }}
 | 
					                  {{ $t('invoices.clone_invoice') }}
 | 
				
			||||||
                </a>
 | 
					                </a>
 | 
				
			||||||
              </v-dropdown-item>
 | 
					              </v-dropdown-item>
 | 
				
			||||||
              <v-dropdown-item>
 | 
					              <v-dropdown-item>
 | 
				
			||||||
                <div class="dropdown-item" @click="removeInvoice(row.id)">
 | 
					                <div class="dropdown-item" @click="removeInvoice(row.id)">
 | 
				
			||||||
                  <font-awesome-icon :icon="['fas', 'trash']" class="dropdown-item-icon" />
 | 
					                  <font-awesome-icon
 | 
				
			||||||
 | 
					                    :icon="['fas', 'trash']"
 | 
				
			||||||
 | 
					                    class="dropdown-item-icon"
 | 
				
			||||||
 | 
					                  />
 | 
				
			||||||
                  {{ $t('general.delete') }}
 | 
					                  {{ $t('general.delete') }}
 | 
				
			||||||
                </div>
 | 
					                </div>
 | 
				
			||||||
              </v-dropdown-item>
 | 
					              </v-dropdown-item>
 | 
				
			||||||
 | 
				
			|||||||
@ -38,6 +38,8 @@
 | 
				
			|||||||
              <base-input
 | 
					              <base-input
 | 
				
			||||||
                v-model="item.quantity"
 | 
					                v-model="item.quantity"
 | 
				
			||||||
                :invalid="$v.item.quantity.$error"
 | 
					                :invalid="$v.item.quantity.$error"
 | 
				
			||||||
 | 
					                :is-input-group="!!item.unit_name"
 | 
				
			||||||
 | 
					                :input-group-text="item.unit_name"
 | 
				
			||||||
                type="text"
 | 
					                type="text"
 | 
				
			||||||
                small
 | 
					                small
 | 
				
			||||||
                @keyup="updateItem"
 | 
					                @keyup="updateItem"
 | 
				
			||||||
@ -379,6 +381,7 @@ export default {
 | 
				
			|||||||
      this.item.price = item.price
 | 
					      this.item.price = item.price
 | 
				
			||||||
      this.item.item_id = item.id
 | 
					      this.item.item_id = item.id
 | 
				
			||||||
      this.item.description = item.description
 | 
					      this.item.description = item.description
 | 
				
			||||||
 | 
					      this.item.unit_name = item.unit_name
 | 
				
			||||||
      if (this.taxPerItem === 'YES' && item.taxes) {
 | 
					      if (this.taxPerItem === 'YES' && item.taxes) {
 | 
				
			||||||
        let index = 0
 | 
					        let index = 0
 | 
				
			||||||
        item.taxes.forEach(tax => {
 | 
					        item.taxes.forEach(tax => {
 | 
				
			||||||
 | 
				
			|||||||
@ -12,6 +12,7 @@
 | 
				
			|||||||
      ref="baseSelect"
 | 
					      ref="baseSelect"
 | 
				
			||||||
      v-model="itemSelect"
 | 
					      v-model="itemSelect"
 | 
				
			||||||
      :options="items"
 | 
					      :options="items"
 | 
				
			||||||
 | 
					      :loading="loading"
 | 
				
			||||||
      :show-labels="false"
 | 
					      :show-labels="false"
 | 
				
			||||||
      :preserve-search="true"
 | 
					      :preserve-search="true"
 | 
				
			||||||
      :initial-search="item.name"
 | 
					      :initial-search="item.name"
 | 
				
			||||||
@ -20,7 +21,7 @@
 | 
				
			|||||||
      label="name"
 | 
					      label="name"
 | 
				
			||||||
      class="multi-select-item"
 | 
					      class="multi-select-item"
 | 
				
			||||||
      @value="onTextChange"
 | 
					      @value="onTextChange"
 | 
				
			||||||
      @select="(val) => $emit('select', val)"
 | 
					      @select="onSelect"
 | 
				
			||||||
    >
 | 
					    >
 | 
				
			||||||
      <div slot="afterList">
 | 
					      <div slot="afterList">
 | 
				
			||||||
        <button type="button" class="list-add-button" @click="openItemModal">
 | 
					        <button type="button" class="list-add-button" @click="openItemModal">
 | 
				
			||||||
@ -126,11 +127,15 @@ export default {
 | 
				
			|||||||
    openItemModal () {
 | 
					    openItemModal () {
 | 
				
			||||||
      this.$emit('onSelectItem')
 | 
					      this.$emit('onSelectItem')
 | 
				
			||||||
      this.openModal({
 | 
					      this.openModal({
 | 
				
			||||||
        'title': 'Add Item',
 | 
					        'title': this.$t('items.add_item'),
 | 
				
			||||||
        'componentName': 'ItemModal',
 | 
					        'componentName': 'ItemModal',
 | 
				
			||||||
        'data': {taxPerItem: this.taxPerItem, taxes: this.taxes}
 | 
					        'data': {taxPerItem: this.taxPerItem, taxes: this.taxes}
 | 
				
			||||||
      })
 | 
					      })
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    onSelect(val) {
 | 
				
			||||||
 | 
					      this.$emit('select', val)
 | 
				
			||||||
 | 
					      this.fetchItems()
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    deselectItem () {
 | 
					    deselectItem () {
 | 
				
			||||||
      this.itemSelect = null
 | 
					      this.itemSelect = null
 | 
				
			||||||
      this.$emit('deselect')
 | 
					      this.$emit('deselect')
 | 
				
			||||||
 | 
				
			|||||||
@ -1,7 +1,7 @@
 | 
				
			|||||||
<template>
 | 
					<template>
 | 
				
			||||||
  <div v-if="invoice" class="main-content invoice-view-page">
 | 
					  <div v-if="invoice" class="main-content invoice-view-page">
 | 
				
			||||||
    <div class="page-header">
 | 
					    <div class="page-header">
 | 
				
			||||||
      <h3 class="page-title"> {{ invoice.invoice_number }}</h3>
 | 
					      <h3 class="page-title">{{ invoice.invoice_number }}</h3>
 | 
				
			||||||
      <div class="page-actions row">
 | 
					      <div class="page-actions row">
 | 
				
			||||||
        <div class="col-xs-2 mr-3">
 | 
					        <div class="col-xs-2 mr-3">
 | 
				
			||||||
          <base-button
 | 
					          <base-button
 | 
				
			||||||
@ -24,26 +24,47 @@
 | 
				
			|||||||
        >
 | 
					        >
 | 
				
			||||||
          {{ $t('invoices.send_invoice') }}
 | 
					          {{ $t('invoices.send_invoice') }}
 | 
				
			||||||
        </base-button>
 | 
					        </base-button>
 | 
				
			||||||
        <router-link v-if="invoice.status === 'SENT'" :to="`/admin/payments/${$route.params.id}/create`">
 | 
					        <router-link
 | 
				
			||||||
          <base-button
 | 
					          v-if="invoice.status === 'SENT'"
 | 
				
			||||||
            color="theme"
 | 
					          :to="`/admin/payments/${$route.params.id}/create`"
 | 
				
			||||||
        >
 | 
					        >
 | 
				
			||||||
 | 
					          <base-button color="theme">
 | 
				
			||||||
            {{ $t('payments.record_payment') }}
 | 
					            {{ $t('payments.record_payment') }}
 | 
				
			||||||
          </base-button>
 | 
					          </base-button>
 | 
				
			||||||
        </router-link>
 | 
					        </router-link>
 | 
				
			||||||
        <v-dropdown :close-on-select="false" align="left" class="filter-container">
 | 
					        <v-dropdown
 | 
				
			||||||
 | 
					          :close-on-select="true"
 | 
				
			||||||
 | 
					          align="left"
 | 
				
			||||||
 | 
					          class="filter-container"
 | 
				
			||||||
 | 
					        >
 | 
				
			||||||
          <a slot="activator" href="#">
 | 
					          <a slot="activator" href="#">
 | 
				
			||||||
            <base-button color="theme">
 | 
					            <base-button color="theme">
 | 
				
			||||||
              <font-awesome-icon icon="ellipsis-h" />
 | 
					              <font-awesome-icon icon="ellipsis-h" />
 | 
				
			||||||
            </base-button>
 | 
					            </base-button>
 | 
				
			||||||
          </a>
 | 
					          </a>
 | 
				
			||||||
          <v-dropdown-item>
 | 
					          <v-dropdown-item>
 | 
				
			||||||
            <router-link :to="{path: `/admin/invoices/${$route.params.id}/edit`}" class="dropdown-item">
 | 
					            <div class="dropdown-item" @click="copyPdfUrl">
 | 
				
			||||||
              <font-awesome-icon :icon="['fas', 'pencil-alt']" class="dropdown-item-icon"/>
 | 
					              <font-awesome-icon
 | 
				
			||||||
 | 
					                :icon="['fas', 'link']"
 | 
				
			||||||
 | 
					                class="dropdown-item-icon"
 | 
				
			||||||
 | 
					              />
 | 
				
			||||||
 | 
					              {{ $t('general.copy_pdf_url') }}
 | 
				
			||||||
 | 
					            </div>
 | 
				
			||||||
 | 
					            <router-link
 | 
				
			||||||
 | 
					              :to="{ path: `/admin/invoices/${$route.params.id}/edit` }"
 | 
				
			||||||
 | 
					              class="dropdown-item"
 | 
				
			||||||
 | 
					            >
 | 
				
			||||||
 | 
					              <font-awesome-icon
 | 
				
			||||||
 | 
					                :icon="['fas', 'pencil-alt']"
 | 
				
			||||||
 | 
					                class="dropdown-item-icon"
 | 
				
			||||||
 | 
					              />
 | 
				
			||||||
              {{ $t('general.edit') }}
 | 
					              {{ $t('general.edit') }}
 | 
				
			||||||
            </router-link>
 | 
					            </router-link>
 | 
				
			||||||
            <div class="dropdown-item" @click="removeInvoice($route.params.id)">
 | 
					            <div class="dropdown-item" @click="removeInvoice($route.params.id)">
 | 
				
			||||||
              <font-awesome-icon :icon="['fas', 'trash']" class="dropdown-item-icon" />
 | 
					              <font-awesome-icon
 | 
				
			||||||
 | 
					                :icon="['fas', 'trash']"
 | 
				
			||||||
 | 
					                class="dropdown-item-icon"
 | 
				
			||||||
 | 
					              />
 | 
				
			||||||
              {{ $t('general.delete') }}
 | 
					              {{ $t('general.delete') }}
 | 
				
			||||||
            </div>
 | 
					            </div>
 | 
				
			||||||
          </v-dropdown-item>
 | 
					          </v-dropdown-item>
 | 
				
			||||||
@ -61,14 +82,18 @@
 | 
				
			|||||||
          align-icon="right"
 | 
					          align-icon="right"
 | 
				
			||||||
          @input="onSearch"
 | 
					          @input="onSearch"
 | 
				
			||||||
        />
 | 
					        />
 | 
				
			||||||
        <div
 | 
					        <div class="btn-group ml-3" role="group" aria-label="First group">
 | 
				
			||||||
          class="btn-group ml-3"
 | 
					          <v-dropdown
 | 
				
			||||||
          role="group"
 | 
					            :close-on-select="false"
 | 
				
			||||||
          aria-label="First group"
 | 
					            align="left"
 | 
				
			||||||
 | 
					            class="filter-container"
 | 
				
			||||||
          >
 | 
					          >
 | 
				
			||||||
          <v-dropdown :close-on-select="false" align="left" class="filter-container">
 | 
					 | 
				
			||||||
            <a slot="activator" href="#">
 | 
					            <a slot="activator" href="#">
 | 
				
			||||||
              <base-button class="inv-button inv-filter-fields-btn" color="default" size="medium">
 | 
					              <base-button
 | 
				
			||||||
 | 
					                class="inv-button inv-filter-fields-btn"
 | 
				
			||||||
 | 
					                color="default"
 | 
				
			||||||
 | 
					                size="medium"
 | 
				
			||||||
 | 
					              >
 | 
				
			||||||
                <font-awesome-icon icon="filter" />
 | 
					                <font-awesome-icon icon="filter" />
 | 
				
			||||||
              </base-button>
 | 
					              </base-button>
 | 
				
			||||||
            </a>
 | 
					            </a>
 | 
				
			||||||
@ -84,8 +109,10 @@
 | 
				
			|||||||
                class="inv-radio"
 | 
					                class="inv-radio"
 | 
				
			||||||
                value="invoice_date"
 | 
					                value="invoice_date"
 | 
				
			||||||
                @change="onSearch"
 | 
					                @change="onSearch"
 | 
				
			||||||
              >
 | 
					              />
 | 
				
			||||||
              <label class="inv-label" for="filter_invoice_date">{{ $t('invoices.invoice_date') }}</label>
 | 
					              <label class="inv-label" for="filter_invoice_date">{{
 | 
				
			||||||
 | 
					                $t('invoices.invoice_date')
 | 
				
			||||||
 | 
					              }}</label>
 | 
				
			||||||
            </div>
 | 
					            </div>
 | 
				
			||||||
            <div class="filter-items">
 | 
					            <div class="filter-items">
 | 
				
			||||||
              <input
 | 
					              <input
 | 
				
			||||||
@ -96,8 +123,10 @@
 | 
				
			|||||||
                class="inv-radio"
 | 
					                class="inv-radio"
 | 
				
			||||||
                value="due_date"
 | 
					                value="due_date"
 | 
				
			||||||
                @change="onSearch"
 | 
					                @change="onSearch"
 | 
				
			||||||
              >
 | 
					              />
 | 
				
			||||||
              <label class="inv-label" for="filter_due_date">{{ $t('invoices.due_date') }}</label>
 | 
					              <label class="inv-label" for="filter_due_date">{{
 | 
				
			||||||
 | 
					                $t('invoices.due_date')
 | 
				
			||||||
 | 
					              }}</label>
 | 
				
			||||||
            </div>
 | 
					            </div>
 | 
				
			||||||
            <div class="filter-items">
 | 
					            <div class="filter-items">
 | 
				
			||||||
              <input
 | 
					              <input
 | 
				
			||||||
@ -108,11 +137,19 @@
 | 
				
			|||||||
                class="inv-radio"
 | 
					                class="inv-radio"
 | 
				
			||||||
                value="invoice_number"
 | 
					                value="invoice_number"
 | 
				
			||||||
                @change="onSearch"
 | 
					                @change="onSearch"
 | 
				
			||||||
              >
 | 
					              />
 | 
				
			||||||
              <label class="inv-label" for="filter_invoice_number">{{ $t('invoices.invoice_number') }}</label>
 | 
					              <label class="inv-label" for="filter_invoice_number">{{
 | 
				
			||||||
 | 
					                $t('invoices.invoice_number')
 | 
				
			||||||
 | 
					              }}</label>
 | 
				
			||||||
            </div>
 | 
					            </div>
 | 
				
			||||||
          </v-dropdown>
 | 
					          </v-dropdown>
 | 
				
			||||||
          <base-button v-tooltip.top-center="{ content: getOrderName }" class="inv-button inv-filter-sorting-btn" color="default" size="medium" @click="sortData">
 | 
					          <base-button
 | 
				
			||||||
 | 
					            v-tooltip.top-center="{ content: getOrderName }"
 | 
				
			||||||
 | 
					            class="inv-button inv-filter-sorting-btn"
 | 
				
			||||||
 | 
					            color="default"
 | 
				
			||||||
 | 
					            size="medium"
 | 
				
			||||||
 | 
					            @click="sortData"
 | 
				
			||||||
 | 
					          >
 | 
				
			||||||
            <font-awesome-icon v-if="getOrderBy" icon="sort-amount-up" />
 | 
					            <font-awesome-icon v-if="getOrderBy" icon="sort-amount-up" />
 | 
				
			||||||
            <font-awesome-icon v-else icon="sort-amount-down" />
 | 
					            <font-awesome-icon v-else icon="sort-amount-down" />
 | 
				
			||||||
          </base-button>
 | 
					          </base-button>
 | 
				
			||||||
@ -121,7 +158,7 @@
 | 
				
			|||||||
      <base-loader v-if="isSearching" />
 | 
					      <base-loader v-if="isSearching" />
 | 
				
			||||||
      <div v-else class="side-content">
 | 
					      <div v-else class="side-content">
 | 
				
			||||||
        <router-link
 | 
					        <router-link
 | 
				
			||||||
          v-for="(invoice,index) in invoices"
 | 
					          v-for="(invoice, index) in invoices"
 | 
				
			||||||
          :to="`/admin/invoices/${invoice.id}/view`"
 | 
					          :to="`/admin/invoices/${invoice.id}/view`"
 | 
				
			||||||
          :key="index"
 | 
					          :key="index"
 | 
				
			||||||
          class="side-invoice"
 | 
					          class="side-invoice"
 | 
				
			||||||
@ -129,10 +166,20 @@
 | 
				
			|||||||
          <div class="left">
 | 
					          <div class="left">
 | 
				
			||||||
            <div class="inv-name">{{ invoice.user.name }}</div>
 | 
					            <div class="inv-name">{{ invoice.user.name }}</div>
 | 
				
			||||||
            <div class="inv-number">{{ invoice.invoice_number }}</div>
 | 
					            <div class="inv-number">{{ invoice.invoice_number }}</div>
 | 
				
			||||||
            <div :class="'inv-status-'+invoice.status.toLowerCase()" class="inv-status">{{ invoice.status }}</div>
 | 
					            <div
 | 
				
			||||||
 | 
					              :class="'inv-status-' + invoice.status.toLowerCase()"
 | 
				
			||||||
 | 
					              class="inv-status"
 | 
				
			||||||
 | 
					            >
 | 
				
			||||||
 | 
					              {{ invoice.status }}
 | 
				
			||||||
 | 
					            </div>
 | 
				
			||||||
          </div>
 | 
					          </div>
 | 
				
			||||||
          <div class="right">
 | 
					          <div class="right">
 | 
				
			||||||
            <div class="inv-amount" v-html="$utils.formatMoney(invoice.due_amount, invoice.user.currency)" />
 | 
					            <div
 | 
				
			||||||
 | 
					              class="inv-amount"
 | 
				
			||||||
 | 
					              v-html="
 | 
				
			||||||
 | 
					                $utils.formatMoney(invoice.due_amount, invoice.user.currency)
 | 
				
			||||||
 | 
					              "
 | 
				
			||||||
 | 
					            />
 | 
				
			||||||
            <div class="inv-date">{{ invoice.formattedInvoiceDate }}</div>
 | 
					            <div class="inv-date">{{ invoice.formattedInvoiceDate }}</div>
 | 
				
			||||||
          </div>
 | 
					          </div>
 | 
				
			||||||
        </router-link>
 | 
					        </router-link>
 | 
				
			||||||
@ -141,8 +188,8 @@
 | 
				
			|||||||
        </p>
 | 
					        </p>
 | 
				
			||||||
      </div>
 | 
					      </div>
 | 
				
			||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
    <div class="invoice-view-page-container" >
 | 
					    <div class="invoice-view-page-container">
 | 
				
			||||||
      <iframe :src="`${shareableLink}`" class="frame-style"/>
 | 
					      <iframe :src="`${shareableLink}`" class="frame-style" />
 | 
				
			||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
  </div>
 | 
					  </div>
 | 
				
			||||||
</template>
 | 
					</template>
 | 
				
			||||||
@ -291,6 +338,14 @@ export default {
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
      })
 | 
					      })
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    copyPdfUrl () {
 | 
				
			||||||
 | 
					      let pdfUrl = `${window.location.origin}/invoices/pdf/${this.invoice.unique_hash}`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      let response = this.$utils.copyTextToClipboard(pdfUrl)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      window.toastr['success'](this.$tc('Copied PDF url to clipboard!'))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    async removeInvoice (id) {
 | 
					    async removeInvoice (id) {
 | 
				
			||||||
      this.selectInvoice([parseInt(id)])
 | 
					      this.selectInvoice([parseInt(id)])
 | 
				
			||||||
      this.id = id
 | 
					      this.id = id
 | 
				
			||||||
 | 
				
			|||||||
@ -266,7 +266,7 @@ export default {
 | 
				
			|||||||
    },
 | 
					    },
 | 
				
			||||||
    async addItemUnit () {
 | 
					    async addItemUnit () {
 | 
				
			||||||
      this.openModal({
 | 
					      this.openModal({
 | 
				
			||||||
        'title': 'Add Item Unit',
 | 
					        'title': this.$t('settings.customization.items.add_item_unit'),
 | 
				
			||||||
        'componentName': 'ItemUnit'
 | 
					        'componentName': 'ItemUnit'
 | 
				
			||||||
      })
 | 
					      })
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
				
			|||||||
@ -305,7 +305,7 @@ export default {
 | 
				
			|||||||
    },
 | 
					    },
 | 
				
			||||||
    async addPaymentMode () {
 | 
					    async addPaymentMode () {
 | 
				
			||||||
      this.openModal({
 | 
					      this.openModal({
 | 
				
			||||||
        'title': 'Add Payment Mode',
 | 
					        'title': this.$t('settings.customization.payments.add_payment_mode'),
 | 
				
			||||||
        'componentName': 'PaymentMode'
 | 
					        'componentName': 'PaymentMode'
 | 
				
			||||||
      })
 | 
					      })
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
				
			|||||||
@ -1,7 +1,7 @@
 | 
				
			|||||||
<template>
 | 
					<template>
 | 
				
			||||||
  <div v-if="payment" class="main-content payment-view-page">
 | 
					  <div v-if="payment" class="main-content payment-view-page">
 | 
				
			||||||
    <div class="page-header">
 | 
					    <div class="page-header">
 | 
				
			||||||
      <h3 class="page-title"> {{ payment.payment_number }}</h3>
 | 
					      <h3 class="page-title">{{ payment.payment_number }}</h3>
 | 
				
			||||||
      <div class="page-actions row">
 | 
					      <div class="page-actions row">
 | 
				
			||||||
        <base-button
 | 
					        <base-button
 | 
				
			||||||
          :loading="isSendingEmail"
 | 
					          :loading="isSendingEmail"
 | 
				
			||||||
@ -11,19 +11,39 @@
 | 
				
			|||||||
        >
 | 
					        >
 | 
				
			||||||
          {{ $t('payments.send_payment_receipt') }}
 | 
					          {{ $t('payments.send_payment_receipt') }}
 | 
				
			||||||
        </base-button>
 | 
					        </base-button>
 | 
				
			||||||
        <v-dropdown :close-on-select="false" align="left" class="filter-container">
 | 
					        <v-dropdown
 | 
				
			||||||
 | 
					          :close-on-select="true"
 | 
				
			||||||
 | 
					          align="left"
 | 
				
			||||||
 | 
					          class="filter-container"
 | 
				
			||||||
 | 
					        >
 | 
				
			||||||
          <a slot="activator" href="#">
 | 
					          <a slot="activator" href="#">
 | 
				
			||||||
            <base-button color="theme">
 | 
					            <base-button color="theme">
 | 
				
			||||||
              <font-awesome-icon icon="ellipsis-h" />
 | 
					              <font-awesome-icon icon="ellipsis-h" />
 | 
				
			||||||
            </base-button>
 | 
					            </base-button>
 | 
				
			||||||
          </a>
 | 
					          </a>
 | 
				
			||||||
          <v-dropdown-item>
 | 
					          <v-dropdown-item>
 | 
				
			||||||
            <router-link :to="{path: `/admin/payments/${$route.params.id}/edit`}" class="dropdown-item">
 | 
					            <div class="dropdown-item" @click="copyPdfUrl">
 | 
				
			||||||
              <font-awesome-icon :icon="['fas', 'pencil-alt']" class="dropdown-item-icon"/>
 | 
					              <font-awesome-icon
 | 
				
			||||||
 | 
					                :icon="['fas', 'link']"
 | 
				
			||||||
 | 
					                class="dropdown-item-icon"
 | 
				
			||||||
 | 
					              />
 | 
				
			||||||
 | 
					              {{ $t('general.copy_pdf_url') }}
 | 
				
			||||||
 | 
					            </div>
 | 
				
			||||||
 | 
					            <router-link
 | 
				
			||||||
 | 
					              :to="{ path: `/admin/payments/${$route.params.id}/edit` }"
 | 
				
			||||||
 | 
					              class="dropdown-item"
 | 
				
			||||||
 | 
					            >
 | 
				
			||||||
 | 
					              <font-awesome-icon
 | 
				
			||||||
 | 
					                :icon="['fas', 'pencil-alt']"
 | 
				
			||||||
 | 
					                class="dropdown-item-icon"
 | 
				
			||||||
 | 
					              />
 | 
				
			||||||
              {{ $t('general.edit') }}
 | 
					              {{ $t('general.edit') }}
 | 
				
			||||||
            </router-link>
 | 
					            </router-link>
 | 
				
			||||||
            <div class="dropdown-item" @click="removePayment($route.params.id)">
 | 
					            <div class="dropdown-item" @click="removePayment($route.params.id)">
 | 
				
			||||||
              <font-awesome-icon :icon="['fas', 'trash']" class="dropdown-item-icon" />
 | 
					              <font-awesome-icon
 | 
				
			||||||
 | 
					                :icon="['fas', 'trash']"
 | 
				
			||||||
 | 
					                class="dropdown-item-icon"
 | 
				
			||||||
 | 
					              />
 | 
				
			||||||
              {{ $t('general.delete') }}
 | 
					              {{ $t('general.delete') }}
 | 
				
			||||||
            </div>
 | 
					            </div>
 | 
				
			||||||
          </v-dropdown-item>
 | 
					          </v-dropdown-item>
 | 
				
			||||||
@ -41,14 +61,18 @@
 | 
				
			|||||||
          align-icon="right"
 | 
					          align-icon="right"
 | 
				
			||||||
          @input="onSearch"
 | 
					          @input="onSearch"
 | 
				
			||||||
        />
 | 
					        />
 | 
				
			||||||
        <div
 | 
					        <div class="btn-group ml-3" role="group" aria-label="First group">
 | 
				
			||||||
          class="btn-group ml-3"
 | 
					          <v-dropdown
 | 
				
			||||||
          role="group"
 | 
					            :close-on-select="false"
 | 
				
			||||||
          aria-label="First group"
 | 
					            align="left"
 | 
				
			||||||
 | 
					            class="filter-container"
 | 
				
			||||||
          >
 | 
					          >
 | 
				
			||||||
          <v-dropdown :close-on-select="false" align="left" class="filter-container">
 | 
					 | 
				
			||||||
            <a slot="activator" href="#">
 | 
					            <a slot="activator" href="#">
 | 
				
			||||||
              <base-button class="inv-button inv-filter-fields-btn" color="default" size="medium">
 | 
					              <base-button
 | 
				
			||||||
 | 
					                class="inv-button inv-filter-fields-btn"
 | 
				
			||||||
 | 
					                color="default"
 | 
				
			||||||
 | 
					                size="medium"
 | 
				
			||||||
 | 
					              >
 | 
				
			||||||
                <font-awesome-icon icon="filter" />
 | 
					                <font-awesome-icon icon="filter" />
 | 
				
			||||||
              </base-button>
 | 
					              </base-button>
 | 
				
			||||||
            </a>
 | 
					            </a>
 | 
				
			||||||
@ -64,8 +88,10 @@
 | 
				
			|||||||
                class="inv-radio"
 | 
					                class="inv-radio"
 | 
				
			||||||
                value="invoice_number"
 | 
					                value="invoice_number"
 | 
				
			||||||
                @change="onSearch"
 | 
					                @change="onSearch"
 | 
				
			||||||
              >
 | 
					              />
 | 
				
			||||||
              <label class="inv-label" for="filter_invoice_number">{{ $t('invoices.title') }}</label>
 | 
					              <label class="inv-label" for="filter_invoice_number">{{
 | 
				
			||||||
 | 
					                $t('invoices.title')
 | 
				
			||||||
 | 
					              }}</label>
 | 
				
			||||||
            </div>
 | 
					            </div>
 | 
				
			||||||
            <div class="filter-items">
 | 
					            <div class="filter-items">
 | 
				
			||||||
              <input
 | 
					              <input
 | 
				
			||||||
@ -76,8 +102,10 @@
 | 
				
			|||||||
                class="inv-radio"
 | 
					                class="inv-radio"
 | 
				
			||||||
                value="payment_date"
 | 
					                value="payment_date"
 | 
				
			||||||
                @change="onSearch"
 | 
					                @change="onSearch"
 | 
				
			||||||
              >
 | 
					              />
 | 
				
			||||||
              <label class="inv-label" for="filter_payment_date">{{ $t('payments.date') }}</label>
 | 
					              <label class="inv-label" for="filter_payment_date">{{
 | 
				
			||||||
 | 
					                $t('payments.date')
 | 
				
			||||||
 | 
					              }}</label>
 | 
				
			||||||
            </div>
 | 
					            </div>
 | 
				
			||||||
            <div class="filter-items">
 | 
					            <div class="filter-items">
 | 
				
			||||||
              <input
 | 
					              <input
 | 
				
			||||||
@ -88,11 +116,19 @@
 | 
				
			|||||||
                class="inv-radio"
 | 
					                class="inv-radio"
 | 
				
			||||||
                value="payment_number"
 | 
					                value="payment_number"
 | 
				
			||||||
                @change="onSearch"
 | 
					                @change="onSearch"
 | 
				
			||||||
              >
 | 
					              />
 | 
				
			||||||
              <label class="inv-label" for="filter_payment_number">{{ $t('payments.payment_number') }}</label>
 | 
					              <label class="inv-label" for="filter_payment_number">{{
 | 
				
			||||||
 | 
					                $t('payments.payment_number')
 | 
				
			||||||
 | 
					              }}</label>
 | 
				
			||||||
            </div>
 | 
					            </div>
 | 
				
			||||||
          </v-dropdown>
 | 
					          </v-dropdown>
 | 
				
			||||||
          <base-button v-tooltip.top-center="{ content: getOrderName }" class="inv-button inv-filter-sorting-btn" color="default" size="medium" @click="sortData">
 | 
					          <base-button
 | 
				
			||||||
 | 
					            v-tooltip.top-center="{ content: getOrderName }"
 | 
				
			||||||
 | 
					            class="inv-button inv-filter-sorting-btn"
 | 
				
			||||||
 | 
					            color="default"
 | 
				
			||||||
 | 
					            size="medium"
 | 
				
			||||||
 | 
					            @click="sortData"
 | 
				
			||||||
 | 
					          >
 | 
				
			||||||
            <font-awesome-icon v-if="getOrderBy" icon="sort-amount-up" />
 | 
					            <font-awesome-icon v-if="getOrderBy" icon="sort-amount-up" />
 | 
				
			||||||
            <font-awesome-icon v-else icon="sort-amount-down" />
 | 
					            <font-awesome-icon v-else icon="sort-amount-down" />
 | 
				
			||||||
          </base-button>
 | 
					          </base-button>
 | 
				
			||||||
@ -101,7 +137,7 @@
 | 
				
			|||||||
      <base-loader v-if="isSearching" />
 | 
					      <base-loader v-if="isSearching" />
 | 
				
			||||||
      <div v-else class="side-content">
 | 
					      <div v-else class="side-content">
 | 
				
			||||||
        <router-link
 | 
					        <router-link
 | 
				
			||||||
          v-for="(payment,index) in payments"
 | 
					          v-for="(payment, index) in payments"
 | 
				
			||||||
          :to="`/admin/payments/${payment.id}/view`"
 | 
					          :to="`/admin/payments/${payment.id}/view`"
 | 
				
			||||||
          :key="index"
 | 
					          :key="index"
 | 
				
			||||||
          class="side-payment"
 | 
					          class="side-payment"
 | 
				
			||||||
@ -112,7 +148,10 @@
 | 
				
			|||||||
            <div class="inv-number">{{ payment.invoice_number }}</div>
 | 
					            <div class="inv-number">{{ payment.invoice_number }}</div>
 | 
				
			||||||
          </div>
 | 
					          </div>
 | 
				
			||||||
          <div class="right">
 | 
					          <div class="right">
 | 
				
			||||||
            <div class="inv-amount" v-html="$utils.formatMoney(payment.amount, payment.user.currency)" />
 | 
					            <div
 | 
				
			||||||
 | 
					              class="inv-amount"
 | 
				
			||||||
 | 
					              v-html="$utils.formatMoney(payment.amount, payment.user.currency)"
 | 
				
			||||||
 | 
					            />
 | 
				
			||||||
            <div class="inv-date">{{ payment.formattedPaymentDate }}</div>
 | 
					            <div class="inv-date">{{ payment.formattedPaymentDate }}</div>
 | 
				
			||||||
            <!-- <div class="inv-number">{{ payment.payment_method.name }}</div> -->
 | 
					            <!-- <div class="inv-number">{{ payment.payment_method.name }}</div> -->
 | 
				
			||||||
          </div>
 | 
					          </div>
 | 
				
			||||||
@ -122,8 +161,8 @@
 | 
				
			|||||||
        </p>
 | 
					        </p>
 | 
				
			||||||
      </div>
 | 
					      </div>
 | 
				
			||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
    <div class="payment-view-page-container" >
 | 
					    <div class="payment-view-page-container">
 | 
				
			||||||
      <iframe :src="`${shareableLink}`" class="frame-style"/>
 | 
					      <iframe :src="`${shareableLink}`" class="frame-style" />
 | 
				
			||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
  </div>
 | 
					  </div>
 | 
				
			||||||
</template>
 | 
					</template>
 | 
				
			||||||
@ -260,6 +299,13 @@ export default {
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
      })
 | 
					      })
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    copyPdfUrl () {
 | 
				
			||||||
 | 
					      let pdfUrl = `${window.location.origin}/payments/pdf/${this.payment.unique_hash}`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      let response = this.$utils.copyTextToClipboard(pdfUrl)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      window.toastr['success'](this.$tc('Copied PDF url to clipboard!'))
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    async removePayment (id) {
 | 
					    async removePayment (id) {
 | 
				
			||||||
      this.id = id
 | 
					      this.id = id
 | 
				
			||||||
      window.swal({
 | 
					      window.swal({
 | 
				
			||||||
 | 
				
			|||||||
@ -403,14 +403,14 @@ export default {
 | 
				
			|||||||
    },
 | 
					    },
 | 
				
			||||||
    async addItemUnit () {
 | 
					    async addItemUnit () {
 | 
				
			||||||
      this.openModal({
 | 
					      this.openModal({
 | 
				
			||||||
        'title': 'Add Item Unit',
 | 
					        'title': this.$t('settings.customization.items.add_item_unit'),
 | 
				
			||||||
        'componentName': 'ItemUnit'
 | 
					        'componentName': 'ItemUnit'
 | 
				
			||||||
      })
 | 
					      })
 | 
				
			||||||
      this.$refs.itemTable.refresh()
 | 
					      this.$refs.itemTable.refresh()
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    async editItemUnit (data) {
 | 
					    async editItemUnit (data) {
 | 
				
			||||||
      this.openModal({
 | 
					      this.openModal({
 | 
				
			||||||
        'title': 'Edit Item Unit',
 | 
					        'title': this.$t('settings.customization.items.edit_item_unit'),
 | 
				
			||||||
        'componentName': 'ItemUnit',
 | 
					        'componentName': 'ItemUnit',
 | 
				
			||||||
        'id': data.id,
 | 
					        'id': data.id,
 | 
				
			||||||
        'data': data
 | 
					        'data': data
 | 
				
			||||||
@ -439,14 +439,14 @@ export default {
 | 
				
			|||||||
    },
 | 
					    },
 | 
				
			||||||
    async addPaymentMode () {
 | 
					    async addPaymentMode () {
 | 
				
			||||||
      this.openModal({
 | 
					      this.openModal({
 | 
				
			||||||
        'title': 'Add Payment Mode',
 | 
					        'title': this.$t('settings.customization.payments.add_payment_mode'),
 | 
				
			||||||
        'componentName': 'PaymentMode'
 | 
					        'componentName': 'PaymentMode'
 | 
				
			||||||
      })
 | 
					      })
 | 
				
			||||||
      this.$refs.table.refresh()
 | 
					      this.$refs.table.refresh()
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    async editPaymentMode (data) {
 | 
					    async editPaymentMode (data) {
 | 
				
			||||||
      this.openModal({
 | 
					      this.openModal({
 | 
				
			||||||
        'title': 'Edit Payment Mode',
 | 
					        'title': this.$t('settings.customization.payments.edit_payment_mode'),
 | 
				
			||||||
        'componentName': 'PaymentMode',
 | 
					        'componentName': 'PaymentMode',
 | 
				
			||||||
        'id': data.id,
 | 
					        'id': data.id,
 | 
				
			||||||
        'data': data
 | 
					        'data': data
 | 
				
			||||||
 | 
				
			|||||||
@ -121,7 +121,7 @@ export default {
 | 
				
			|||||||
    },
 | 
					    },
 | 
				
			||||||
    openCategoryModal () {
 | 
					    openCategoryModal () {
 | 
				
			||||||
      this.openModal({
 | 
					      this.openModal({
 | 
				
			||||||
        'title': 'Add Category',
 | 
					        'title': this.$t('settings.expense_category.add_category'),
 | 
				
			||||||
        'componentName': 'CategoryModal'
 | 
					        'componentName': 'CategoryModal'
 | 
				
			||||||
      })
 | 
					      })
 | 
				
			||||||
      this.$refs.table.refresh()
 | 
					      this.$refs.table.refresh()
 | 
				
			||||||
@ -129,7 +129,7 @@ export default {
 | 
				
			|||||||
    async EditCategory (id) {
 | 
					    async EditCategory (id) {
 | 
				
			||||||
      let response = await this.fetchCategory(id)
 | 
					      let response = await this.fetchCategory(id)
 | 
				
			||||||
      this.openModal({
 | 
					      this.openModal({
 | 
				
			||||||
        'title': 'Edit Category',
 | 
					        'title': this.$t('settings.expense_category.edit_category'),
 | 
				
			||||||
        'componentName': 'CategoryModal',
 | 
					        'componentName': 'CategoryModal',
 | 
				
			||||||
        'id': id,
 | 
					        'id': id,
 | 
				
			||||||
        'data': response.data.category
 | 
					        'data': response.data.category
 | 
				
			||||||
 | 
				
			|||||||
@ -183,7 +183,7 @@ export default {
 | 
				
			|||||||
    async EditTax (id) {
 | 
					    async EditTax (id) {
 | 
				
			||||||
      let response = await this.fetchTaxType(id)
 | 
					      let response = await this.fetchTaxType(id)
 | 
				
			||||||
      this.openModal({
 | 
					      this.openModal({
 | 
				
			||||||
        'title': 'Edit Tax',
 | 
					        'title': this.$t('settings.tax_types.edit_tax'),
 | 
				
			||||||
        'componentName': 'TaxTypeModal',
 | 
					        'componentName': 'TaxTypeModal',
 | 
				
			||||||
        'id': id,
 | 
					        'id': id,
 | 
				
			||||||
        'data': response.data.taxType
 | 
					        'data': response.data.taxType
 | 
				
			||||||
 | 
				
			|||||||
@ -1,33 +1,76 @@
 | 
				
			|||||||
<template>
 | 
					<template>
 | 
				
			||||||
  <div class="setting-main-container">
 | 
					  <div class="setting-main-container update-container">
 | 
				
			||||||
    <div class="card setting-card">
 | 
					    <div class="card setting-card">
 | 
				
			||||||
      <div class="page-header">
 | 
					      <div class="page-header">
 | 
				
			||||||
        <h3 class="page-title">{{ $t('settings.update_app.title') }}</h3>
 | 
					        <h3 class="page-title">{{ $t('settings.update_app.title') }}</h3>
 | 
				
			||||||
        <p class="page-sub-title">
 | 
					        <p class="page-sub-title">
 | 
				
			||||||
          {{ $t('settings.update_app.description') }}
 | 
					          {{ $t('settings.update_app.description') }}
 | 
				
			||||||
        </p>
 | 
					        </p>
 | 
				
			||||||
        <label class="input-label">{{ $t('settings.update_app.current_version') }}</label><br>
 | 
					        <label class="input-label">{{
 | 
				
			||||||
 | 
					          $t('settings.update_app.current_version')
 | 
				
			||||||
 | 
					        }}</label
 | 
				
			||||||
 | 
					        ><br />
 | 
				
			||||||
        <label class="version mb-4">{{ currentVersion }}</label>
 | 
					        <label class="version mb-4">{{ currentVersion }}</label>
 | 
				
			||||||
        <base-button :outline="true" :disabled="isCheckingforUpdate || isUpdating" size="large" color="theme" class="mb-4" @click="checkUpdate">
 | 
					        <base-button
 | 
				
			||||||
          <font-awesome-icon :class="{'update': isCheckingforUpdate}" style="margin-right: 10px;" icon="sync-alt" />
 | 
					          :outline="true"
 | 
				
			||||||
 | 
					          :disabled="isCheckingforUpdate || isUpdating"
 | 
				
			||||||
 | 
					          size="large"
 | 
				
			||||||
 | 
					          color="theme"
 | 
				
			||||||
 | 
					          class="mb-4"
 | 
				
			||||||
 | 
					          @click="checkUpdate"
 | 
				
			||||||
 | 
					        >
 | 
				
			||||||
 | 
					          <font-awesome-icon
 | 
				
			||||||
 | 
					            :class="{ update: isCheckingforUpdate }"
 | 
				
			||||||
 | 
					            style="margin-right: 10px;"
 | 
				
			||||||
 | 
					            icon="sync-alt"
 | 
				
			||||||
 | 
					          />
 | 
				
			||||||
          {{ $t('settings.update_app.check_update') }}
 | 
					          {{ $t('settings.update_app.check_update') }}
 | 
				
			||||||
        </base-button>
 | 
					        </base-button>
 | 
				
			||||||
        <hr>
 | 
					        <hr />
 | 
				
			||||||
        <div v-show="!isUpdating" v-if="isUpdateAvailable" class="mt-4 content">
 | 
					        <div v-show="!isUpdating" v-if="isUpdateAvailable" class="mt-4 content">
 | 
				
			||||||
          <h3 class="page-title mb-3">{{ $t('settings.update_app.avail_update') }}</h3>
 | 
					          <h3 class="page-title mb-3">
 | 
				
			||||||
          <label class="input-label">{{ $t('settings.update_app.next_version') }}</label><br>
 | 
					            {{ $t('settings.update_app.avail_update') }}
 | 
				
			||||||
 | 
					          </h3>
 | 
				
			||||||
 | 
					          <label class="input-label">{{
 | 
				
			||||||
 | 
					            $t('settings.update_app.next_version')
 | 
				
			||||||
 | 
					          }}</label
 | 
				
			||||||
 | 
					          ><br />
 | 
				
			||||||
          <label class="version">{{ updateData.version }}</label>
 | 
					          <label class="version">{{ updateData.version }}</label>
 | 
				
			||||||
          <p class="page-sub-title" style="white-space: pre-wrap;">{{ description }}</p>
 | 
					          <p class="page-sub-title" style="white-space: pre-wrap;">{{ description }}</p>
 | 
				
			||||||
          <base-button size="large" icon="rocket" color="theme" @click="onUpdateApp">
 | 
					          <base-button
 | 
				
			||||||
 | 
					            size="large"
 | 
				
			||||||
 | 
					            icon="rocket"
 | 
				
			||||||
 | 
					            color="theme"
 | 
				
			||||||
 | 
					            @click="onUpdateApp"
 | 
				
			||||||
 | 
					          >
 | 
				
			||||||
            {{ $t('settings.update_app.update') }}
 | 
					            {{ $t('settings.update_app.update') }}
 | 
				
			||||||
          </base-button>
 | 
					          </base-button>
 | 
				
			||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
        <div v-if="isUpdating" class="mt-4 content">
 | 
					        <div v-if="isUpdating" class="mt-4 content">
 | 
				
			||||||
          <h3 class="page-title">{{ $t('settings.update_app.update_progress') }}</h3>
 | 
					          <div class="d-flex flex-row justify-content-between">
 | 
				
			||||||
 | 
					            <div>
 | 
				
			||||||
 | 
					              <h3 class="page-title">
 | 
				
			||||||
 | 
					                {{ $t('settings.update_app.update_progress') }}
 | 
				
			||||||
 | 
					              </h3>
 | 
				
			||||||
              <p class="page-sub-title">
 | 
					              <p class="page-sub-title">
 | 
				
			||||||
                {{ $t('settings.update_app.progress_text') }}
 | 
					                {{ $t('settings.update_app.progress_text') }}
 | 
				
			||||||
              </p>
 | 
					              </p>
 | 
				
			||||||
          <font-awesome-icon icon="spinner" class="fa-spin"/>
 | 
					            </div>
 | 
				
			||||||
 | 
					            <font-awesome-icon icon="spinner" class="update-spinner fa-spin" />
 | 
				
			||||||
 | 
					          </div>
 | 
				
			||||||
 | 
					          <ul class="update-steps-container">
 | 
				
			||||||
 | 
					            <li class="update-step" v-for="step in updateSteps">
 | 
				
			||||||
 | 
					              <p class="update-step-text">{{ $t(step.translationKey) }}</p>
 | 
				
			||||||
 | 
					              <div class="update-status-container">
 | 
				
			||||||
 | 
					                <span v-if="step.time" class="update-time">{{
 | 
				
			||||||
 | 
					                  step.time
 | 
				
			||||||
 | 
					                }}</span>
 | 
				
			||||||
 | 
					                <span :class="'update-status status-' + getStatus(step)">{{
 | 
				
			||||||
 | 
					                  getStatus(step)
 | 
				
			||||||
 | 
					                }}</span>
 | 
				
			||||||
 | 
					              </div>
 | 
				
			||||||
 | 
					            </li>
 | 
				
			||||||
 | 
					          </ul>
 | 
				
			||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
      </div>
 | 
					      </div>
 | 
				
			||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
@ -36,7 +79,7 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
<script>
 | 
					<script>
 | 
				
			||||||
export default {
 | 
					export default {
 | 
				
			||||||
  data () {
 | 
					  data() {
 | 
				
			||||||
    return {
 | 
					    return {
 | 
				
			||||||
      isShowProgressBar: false,
 | 
					      isShowProgressBar: false,
 | 
				
			||||||
      isUpdateAvailable: false,
 | 
					      isUpdateAvailable: false,
 | 
				
			||||||
@ -46,60 +89,78 @@ export default {
 | 
				
			|||||||
      interval: null,
 | 
					      interval: null,
 | 
				
			||||||
      description: '',
 | 
					      description: '',
 | 
				
			||||||
      currentVersion: '',
 | 
					      currentVersion: '',
 | 
				
			||||||
 | 
					      updateSteps: [
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					          translationKey: 'settings.update_app.download_zip_file',
 | 
				
			||||||
 | 
					          stepUrl: '/api/update/download',
 | 
				
			||||||
 | 
					          time: null,
 | 
				
			||||||
 | 
					          started: false,
 | 
				
			||||||
 | 
					          completed: false,
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					          translationKey: 'settings.update_app.unzipping_package',
 | 
				
			||||||
 | 
					          stepUrl: '/api/update/unzip',
 | 
				
			||||||
 | 
					          time: null,
 | 
				
			||||||
 | 
					          started: false,
 | 
				
			||||||
 | 
					          completed: false,
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					          translationKey: 'settings.update_app.copying_files',
 | 
				
			||||||
 | 
					          stepUrl: '/api/update/copy',
 | 
				
			||||||
 | 
					          time: null,
 | 
				
			||||||
 | 
					          started: false,
 | 
				
			||||||
 | 
					          completed: false,
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					          translationKey: 'settings.update_app.running_migrations',
 | 
				
			||||||
 | 
					          stepUrl: '/api/update/migrate',
 | 
				
			||||||
 | 
					          time: null,
 | 
				
			||||||
 | 
					          started: false,
 | 
				
			||||||
 | 
					          completed: false,
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					          translationKey: 'settings.update_app.finishing_update',
 | 
				
			||||||
 | 
					          stepUrl: '/api/update/finish',
 | 
				
			||||||
 | 
					          time: null,
 | 
				
			||||||
 | 
					          started: false,
 | 
				
			||||||
 | 
					          completed: false,
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					      ],
 | 
				
			||||||
      updateData: {
 | 
					      updateData: {
 | 
				
			||||||
        isMinor: Boolean,
 | 
					        isMinor: Boolean,
 | 
				
			||||||
        installed: '',
 | 
					        installed: '',
 | 
				
			||||||
        version: ''
 | 
					        version: '',
 | 
				
			||||||
      }
 | 
					      },
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  created () {
 | 
					  created() {
 | 
				
			||||||
    window.addEventListener('beforeunload', (event) => {
 | 
					    window.addEventListener('beforeunload', (event) => {
 | 
				
			||||||
      if (this.isUpdating) {
 | 
					      if (this.isUpdating) {
 | 
				
			||||||
        event.returnValue = 'Update is in progress!'
 | 
					        event.returnValue = 'Update is in progress!'
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    })
 | 
					    })
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  mounted () {
 | 
					  mounted() {
 | 
				
			||||||
    window.axios.get('/api/settings/app/version').then((res) => {
 | 
					    window.axios.get('/api/settings/app/version').then((res) => {
 | 
				
			||||||
      this.currentVersion = res.data.version
 | 
					      this.currentVersion = res.data.version
 | 
				
			||||||
    })
 | 
					    })
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  methods: {
 | 
					  methods: {
 | 
				
			||||||
    closeHandler () {
 | 
					    closeHandler() {
 | 
				
			||||||
      console.log('closing')
 | 
					      console.log('closing')
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    async onUpdateApp () {
 | 
					    getStatus(step) {
 | 
				
			||||||
      try {
 | 
					      if (step.started && step.completed) {
 | 
				
			||||||
        this.isUpdating = true
 | 
					        return 'finished'
 | 
				
			||||||
        this.updateData.installed = this.currentVersion
 | 
					      } else if (step.started && !step.completed) {
 | 
				
			||||||
        let res = await window.axios.post('/api/update', this.updateData)
 | 
					        return 'running'
 | 
				
			||||||
 | 
					      } else if (!step.started && !step.completed) {
 | 
				
			||||||
        if (res.data.success) {
 | 
					        return 'pending'
 | 
				
			||||||
          setTimeout(async () => {
 | 
					 | 
				
			||||||
            await window.axios.post('/api/update/finish', this.updateData)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            window.toastr['success'](this.$t('settings.update_app.update_success'))
 | 
					 | 
				
			||||||
            this.currentVersion = this.updateData.version
 | 
					 | 
				
			||||||
            this.isUpdateAvailable = false
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            setTimeout(() => {
 | 
					 | 
				
			||||||
              location.reload()
 | 
					 | 
				
			||||||
            }, 2000)
 | 
					 | 
				
			||||||
          }, 1000)
 | 
					 | 
				
			||||||
      } else {
 | 
					      } else {
 | 
				
			||||||
          console.log(res.data)
 | 
					        return 'error'
 | 
				
			||||||
          window.toastr['error'](res.data.error)
 | 
					 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
      } catch (e) {
 | 
					 | 
				
			||||||
        console.log(e)
 | 
					 | 
				
			||||||
        window.toastr['error']('Something went wrong')
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      this.isUpdating = false
 | 
					 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    async checkUpdate() {
 | 
				
			||||||
    async checkUpdate () {
 | 
					 | 
				
			||||||
      try {
 | 
					      try {
 | 
				
			||||||
        this.isCheckingforUpdate = true
 | 
					        this.isCheckingforUpdate = true
 | 
				
			||||||
        let response = await window.axios.get('/api/check/update')
 | 
					        let response = await window.axios.get('/api/check/update')
 | 
				
			||||||
@ -122,8 +183,67 @@ export default {
 | 
				
			|||||||
        this.isCheckingforUpdate = false
 | 
					        this.isCheckingforUpdate = false
 | 
				
			||||||
        window.toastr['error']('Something went wrong')
 | 
					        window.toastr['error']('Something went wrong')
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    async onUpdateApp() {
 | 
				
			||||||
 | 
					      let path = null
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      for (let index = 0; index < this.updateSteps.length; index++) {
 | 
				
			||||||
 | 
					        let currentStep = this.updateSteps[index]
 | 
				
			||||||
 | 
					        try {
 | 
				
			||||||
 | 
					          this.isUpdating = true
 | 
				
			||||||
 | 
					          currentStep.started = true
 | 
				
			||||||
 | 
					          let updateParams = {
 | 
				
			||||||
 | 
					            version: this.updateData.version,
 | 
				
			||||||
 | 
					            installed: this.currentVersion,
 | 
				
			||||||
 | 
					            path: path || null,
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          let requestResponse = await window.axios.post(
 | 
				
			||||||
 | 
					            currentStep.stepUrl,
 | 
				
			||||||
 | 
					            updateParams
 | 
				
			||||||
 | 
					          )
 | 
				
			||||||
 | 
					          currentStep.completed = true
 | 
				
			||||||
 | 
					          if (requestResponse.data && requestResponse.data.path) {
 | 
				
			||||||
 | 
					            path = requestResponse.data.path
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          // on finish
 | 
				
			||||||
 | 
					          if (
 | 
				
			||||||
 | 
					            currentStep.translationKey == 'settings.update_app.finishing_update'
 | 
				
			||||||
 | 
					          ) {
 | 
				
			||||||
 | 
					            this.isUpdating = false
 | 
				
			||||||
 | 
					            window.toastr['success'](
 | 
				
			||||||
 | 
					              this.$t('settings.update_app.update_success')
 | 
				
			||||||
 | 
					            )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            setTimeout(() => {
 | 
				
			||||||
 | 
					              location.reload()
 | 
				
			||||||
 | 
					            }, 3000)
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					        } catch (error) {
 | 
				
			||||||
 | 
					          currentStep.started = false
 | 
				
			||||||
 | 
					          currentStep.completed = true
 | 
				
			||||||
 | 
					          window.toastr['error'](this.$t('validation.something_went_wrong'))
 | 
				
			||||||
 | 
					          this.onUpdateFailed(currentStep.translationKey)
 | 
				
			||||||
 | 
					          return false
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    onUpdateFailed(translationKey) {
 | 
				
			||||||
 | 
					      let stepName = this.$t(translationKey) 
 | 
				
			||||||
 | 
					      swal({
 | 
				
			||||||
 | 
					        title: this.$t('settings.update_app.update_failed'),
 | 
				
			||||||
 | 
					        text: this.$tc('settings.update_app.update_failed_text', stepName, {step: stepName}),
 | 
				
			||||||
 | 
					        buttons: [this.$t('general.cancel'), this.$t('general.retry')],
 | 
				
			||||||
 | 
					      }).then(async (value) => {
 | 
				
			||||||
 | 
					        if (value) {
 | 
				
			||||||
 | 
					          this.onUpdateApp()
 | 
				
			||||||
 | 
					          return 
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        this.isUpdating = false
 | 
				
			||||||
 | 
					      })
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
</script>
 | 
					</script>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -54,7 +54,8 @@ import {
 | 
				
			|||||||
  faEyeSlash,
 | 
					  faEyeSlash,
 | 
				
			||||||
  faSyncAlt,
 | 
					  faSyncAlt,
 | 
				
			||||||
  faRocket,
 | 
					  faRocket,
 | 
				
			||||||
  faCamera
 | 
					  faCamera,
 | 
				
			||||||
 | 
					  faLink,
 | 
				
			||||||
} from '@fortawesome/free-solid-svg-icons'
 | 
					} from '@fortawesome/free-solid-svg-icons'
 | 
				
			||||||
import { far } from '@fortawesome/free-regular-svg-icons'
 | 
					import { far } from '@fortawesome/free-regular-svg-icons'
 | 
				
			||||||
import { FontAwesomeIcon } from '@fortawesome/vue-fontawesome'
 | 
					import { FontAwesomeIcon } from '@fortawesome/vue-fontawesome'
 | 
				
			||||||
@ -119,7 +120,8 @@ library.add(
 | 
				
			|||||||
  faPaperPlane,
 | 
					  faPaperPlane,
 | 
				
			||||||
  faSyncAlt,
 | 
					  faSyncAlt,
 | 
				
			||||||
  faRocket,
 | 
					  faRocket,
 | 
				
			||||||
  faCamera
 | 
					  faCamera,
 | 
				
			||||||
 | 
					  faLink
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Vue.component('font-awesome-icon', FontAwesomeIcon)
 | 
					Vue.component('font-awesome-icon', FontAwesomeIcon)
 | 
				
			||||||
 | 
				
			|||||||
@ -18,6 +18,22 @@
 | 
				
			|||||||
        transform: translate(-50%,-50%);
 | 
					        transform: translate(-50%,-50%);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    .right-input-group-text {
 | 
				
			||||||
 | 
					        position: absolute;
 | 
				
			||||||
 | 
					        width: 13px;
 | 
				
			||||||
 | 
					        height: 18px;
 | 
				
			||||||
 | 
					        min-width: 18px;
 | 
				
			||||||
 | 
					        color: $ls-color-gray;
 | 
				
			||||||
 | 
					        font-style: normal;
 | 
				
			||||||
 | 
					        font-weight: 900;
 | 
				
			||||||
 | 
					        font-size: 14px;
 | 
				
			||||||
 | 
					        line-height: 16px;
 | 
				
			||||||
 | 
					        top: 50%;
 | 
				
			||||||
 | 
					        right: 0px;
 | 
				
			||||||
 | 
					        z-index: 1;
 | 
				
			||||||
 | 
					        transform: translate(-50%, -50%);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    .right-icon {
 | 
					    .right-icon {
 | 
				
			||||||
        position: absolute;
 | 
					        position: absolute;
 | 
				
			||||||
        width: 13px;
 | 
					        width: 13px;
 | 
				
			||||||
 | 
				
			|||||||
@ -27,6 +27,7 @@ fieldset[disabled] .multiselect {
 | 
				
			|||||||
    top: 50%;
 | 
					    top: 50%;
 | 
				
			||||||
    left: 50%;
 | 
					    left: 50%;
 | 
				
			||||||
    margin: -8px 0 0 -8px;
 | 
					    margin: -8px 0 0 -8px;
 | 
				
			||||||
 | 
					    z-index: 5;
 | 
				
			||||||
    width: 16px;
 | 
					    width: 16px;
 | 
				
			||||||
    height: 16px;
 | 
					    height: 16px;
 | 
				
			||||||
    border-radius: 100%;
 | 
					    border-radius: 100%;
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										78
									
								
								resources/assets/sass/pages/settings.scss
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										78
									
								
								resources/assets/sass/pages/settings.scss
									
									
									
									
										vendored
									
									
								
							@ -122,6 +122,84 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    .update-container {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .update-spinner {
 | 
				
			||||||
 | 
					            font-size: 30px;
 | 
				
			||||||
 | 
					            color: $ls-color-gray--dark;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .update-steps-container {
 | 
				
			||||||
 | 
					            list-style-type: none;
 | 
				
			||||||
 | 
					            width: 100%;
 | 
				
			||||||
 | 
					            padding: 0px;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            .update-step {
 | 
				
			||||||
 | 
					                display: flex;
 | 
				
			||||||
 | 
					                width: 100%;
 | 
				
			||||||
 | 
					                justify-content: space-between;
 | 
				
			||||||
 | 
					                padding: 10px 0px;
 | 
				
			||||||
 | 
					                border-bottom: 1px solid $ls-color-gray--light;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                &:last-child {
 | 
				
			||||||
 | 
					                    border-bottom: 0px solid;
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .update-step-text {
 | 
				
			||||||
 | 
					            font-size: $font-size-base;
 | 
				
			||||||
 | 
					            margin: 0px;
 | 
				
			||||||
 | 
					            line-height: 2rem;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .update-status-container {
 | 
				
			||||||
 | 
					            display: flex;
 | 
				
			||||||
 | 
					            flex-direction: row;
 | 
				
			||||||
 | 
					            align-items: center;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            .update-time {
 | 
				
			||||||
 | 
					                font-size: 10px;
 | 
				
			||||||
 | 
					                color: $ls-color-gray--dark;
 | 
				
			||||||
 | 
					                margin-right: 10px;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					            .update-status {
 | 
				
			||||||
 | 
					                font-size: 13px;
 | 
				
			||||||
 | 
					                width: 88px;
 | 
				
			||||||
 | 
					                height: 28px;
 | 
				
			||||||
 | 
					                display: block;
 | 
				
			||||||
 | 
					                text-align: center;
 | 
				
			||||||
 | 
					                border-radius: 30px;
 | 
				
			||||||
 | 
					                text-transform: uppercase;
 | 
				
			||||||
 | 
					                line-height: 2rem;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					            .status-pending {
 | 
				
			||||||
 | 
					                background-color: #EAF1FB;
 | 
				
			||||||
 | 
					                color: $ls-color-secondary;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					            .status-running {
 | 
				
			||||||
 | 
					                background-color: rgba(21, 178, 236, 0.15);
 | 
				
			||||||
 | 
					                color: $ls-color-light-blue;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					            .status-finished {
 | 
				
			||||||
 | 
					                background-color: #D4F6EE;
 | 
				
			||||||
 | 
					                color: $ls-color-green;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					            .status-error {
 | 
				
			||||||
 | 
					                background-color: rgba(251, 113, 120, 0.22);
 | 
				
			||||||
 | 
					                color: $ls-color-red;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    .add-new-tax {
 | 
					    .add-new-tax {
 | 
				
			||||||
        height: 45px;
 | 
					        height: 45px;
 | 
				
			||||||
        white-space: nowrap;
 | 
					        white-space: nowrap;
 | 
				
			||||||
 | 
				
			|||||||
@ -1,10 +1,12 @@
 | 
				
			|||||||
<!DOCTYPE html>
 | 
					<!DOCTYPE html>
 | 
				
			||||||
<html>
 | 
					<html>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<head>
 | 
					<head>
 | 
				
			||||||
    <title>Estimate</title>
 | 
					    <title>Estimate</title>
 | 
				
			||||||
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
 | 
					    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    <style type="text/css">
 | 
					    <style type="text/css">
 | 
				
			||||||
 | 
					        /* -- Base -- */
 | 
				
			||||||
        body {
 | 
					        body {
 | 
				
			||||||
            font-family: "DejaVu Sans";
 | 
					            font-family: "DejaVu Sans";
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
@ -12,31 +14,22 @@
 | 
				
			|||||||
        html {
 | 
					        html {
 | 
				
			||||||
            margin: 0px;
 | 
					            margin: 0px;
 | 
				
			||||||
            padding: 0px;
 | 
					            padding: 0px;
 | 
				
			||||||
 | 
					            margin-top: 50px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        table {
 | 
					        table {
 | 
				
			||||||
            border-collapse: collapse;
 | 
					            border-collapse: collapse;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .header-line {
 | 
					 | 
				
			||||||
            color:rgba(0, 0, 0, 0.2);
 | 
					 | 
				
			||||||
            position: absolute;
 | 
					 | 
				
			||||||
            top: 90px;
 | 
					 | 
				
			||||||
            left: 0px;
 | 
					 | 
				
			||||||
            width: 100%;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        hr {
 | 
					        hr {
 | 
				
			||||||
            margin: 0 30px 0 30px;
 | 
					            margin: 0 30px 0 30px;
 | 
				
			||||||
            color:rgba(0, 0, 0, 0.2);
 | 
					            color: rgba(0, 0, 0, 0.2);
 | 
				
			||||||
            border: 0.5px solid #EAF1FB;
 | 
					            border: 0.5px solid #EAF1FB;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .header-center {
 | 
					        /* -- Header -- */
 | 
				
			||||||
            text-align: center
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .header-table {
 | 
					        .header-container {
 | 
				
			||||||
            position: absolute;
 | 
					            position: absolute;
 | 
				
			||||||
            width: 100%;
 | 
					            width: 100%;
 | 
				
			||||||
            height: 90px;
 | 
					            height: 90px;
 | 
				
			||||||
@ -44,6 +37,14 @@
 | 
				
			|||||||
            top: -50px;
 | 
					            top: -50px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .header-bottom-divider {
 | 
				
			||||||
 | 
					            color: rgba(0, 0, 0, 0.2);
 | 
				
			||||||
 | 
					            position: absolute;
 | 
				
			||||||
 | 
					            top: 90px;
 | 
				
			||||||
 | 
					            left: 0px;
 | 
				
			||||||
 | 
					            width: 100%;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .header-logo {
 | 
					        .header-logo {
 | 
				
			||||||
            height: 50px;
 | 
					            height: 50px;
 | 
				
			||||||
            margin-top: 20px;
 | 
					            margin-top: 20px;
 | 
				
			||||||
@ -51,32 +52,11 @@
 | 
				
			|||||||
            color: #817AE3;
 | 
					            color: #817AE3;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .inv-flex{
 | 
					 | 
				
			||||||
            display:flex;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        .inv-data{
 | 
					 | 
				
			||||||
            text-align:right;
 | 
					 | 
				
			||||||
            margin-right:120px;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        .inv-value{
 | 
					 | 
				
			||||||
            text-align:left;
 | 
					 | 
				
			||||||
            margin-left:160px;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        .header {
 | 
					        .header {
 | 
				
			||||||
            font-size: 20px;
 | 
					            font-size: 20px;
 | 
				
			||||||
            color: rgba(0, 0, 0, 0.7);
 | 
					            color: rgba(0, 0, 0, 0.7);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .TextColor1 {
 | 
					 | 
				
			||||||
            font-size: 16px;
 | 
					 | 
				
			||||||
            color: rgba(0, 0, 0, 0.5);
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        @page {
 | 
					 | 
				
			||||||
            margin-top: 60px !important;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        .wrapper {
 | 
					        .wrapper {
 | 
				
			||||||
            display: block;
 | 
					            display: block;
 | 
				
			||||||
            margin-top: 0px;
 | 
					            margin-top: 0px;
 | 
				
			||||||
@ -84,89 +64,83 @@
 | 
				
			|||||||
            padding-bottom: 20px;
 | 
					            padding-bottom: 20px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .address {
 | 
					        /* -- Company Details -- */
 | 
				
			||||||
            /* display: inline-block; */
 | 
					
 | 
				
			||||||
            padding-top: 30px
 | 
					        .company-details-container {
 | 
				
			||||||
 | 
					            padding-top: 30px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .company {
 | 
					        .company-address-container {
 | 
				
			||||||
            float: left;
 | 
					            float: left;
 | 
				
			||||||
            padding-left: 30px;
 | 
					            padding-left: 30px;
 | 
				
			||||||
            font-weight: normal;
 | 
					            width: 30%;
 | 
				
			||||||
            display: inline;
 | 
					 | 
				
			||||||
            float:left;
 | 
					 | 
				
			||||||
            width:30%;
 | 
					 | 
				
			||||||
            text-transform: capitalize;
 | 
					            text-transform: capitalize;
 | 
				
			||||||
            margin-bottom: 2px;
 | 
					            margin-bottom: 2px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .company h1 {
 | 
					        .company-address-container {
 | 
				
			||||||
            font-style: normal;
 | 
					            padding-left: 30px;
 | 
				
			||||||
            font-weight: normal;
 | 
					            float: left;
 | 
				
			||||||
 | 
					            width: 30%;
 | 
				
			||||||
 | 
					            text-transform: capitalize;
 | 
				
			||||||
 | 
					            margin-bottom: 2px;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .company-address-container h1 {
 | 
				
			||||||
            font-size: 15px;
 | 
					            font-size: 15px;
 | 
				
			||||||
            line-height: 22px;
 | 
					            line-height: 22px;
 | 
				
			||||||
            letter-spacing: 0.05em;
 | 
					            letter-spacing: 0.05em;
 | 
				
			||||||
            margin-bottom: 0px;
 | 
					            margin-bottom: 0px;
 | 
				
			||||||
 | 
					            margin-top: 10px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .company-add {
 | 
					        .company-address {
 | 
				
			||||||
            margin-top: 2px;
 | 
					            margin-top: 2px;
 | 
				
			||||||
            text-align: left;
 | 
					            text-align: left;
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 12px;
 | 
					            font-size: 12px;
 | 
				
			||||||
            line-height: 15px;
 | 
					            line-height: 15px;
 | 
				
			||||||
            color: #595959;
 | 
					            color: #595959;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .job-add {
 | 
					        .estimate-details-container {
 | 
				
			||||||
            /* display: inline; */
 | 
					 | 
				
			||||||
            float: right;
 | 
					            float: right;
 | 
				
			||||||
            padding: 10px 30px 0 0;
 | 
					            padding: 10px 30px 0 0;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        .amount-due {
 | 
					 | 
				
			||||||
            background-color: #f2f2f2;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .textRight {
 | 
					        .attribute-label {
 | 
				
			||||||
            text-align: right;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        .textLeft {
 | 
					 | 
				
			||||||
            text-align: left;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        .textStyle1 {
 | 
					 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 12px;
 | 
					            font-size: 12px;
 | 
				
			||||||
            line-height: 18px;
 | 
					            line-height: 18px;
 | 
				
			||||||
            padding-right: 40px;
 | 
					            padding-right: 40px;
 | 
				
			||||||
 | 
					            text-align: left;
 | 
				
			||||||
 | 
					            color: #55547A
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .textStyle2 {
 | 
					        .attribute-value {
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 12px;
 | 
					            font-size: 12px;
 | 
				
			||||||
            line-height: 18px;
 | 
					            line-height: 18px;
 | 
				
			||||||
            text-align: right;
 | 
					            text-align: right;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        .bill-add {
 | 
					
 | 
				
			||||||
            width:45%;
 | 
					        /* -- Customer Address -- */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .customer-address-container {
 | 
				
			||||||
 | 
					            width: 45%;
 | 
				
			||||||
            padding: 0px 0 0 0px;
 | 
					            padding: 0px 0 0 0px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        /* -------------------------- */
 | 
					        /* -- Shipping -- */
 | 
				
			||||||
        /* shipping style */
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .ship-address-container {
 | 
					        .shipping-address-container {
 | 
				
			||||||
            float: right;
 | 
					            float: right;
 | 
				
			||||||
            padding-left: 30px;
 | 
					            padding-left: 30px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .ship-to {
 | 
					        .shipping-address-container--left {
 | 
				
			||||||
            font-style: normal;
 | 
					            float: left;
 | 
				
			||||||
            font-weight: normal;
 | 
					            padding-left: 0px;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .shipping-address-label {
 | 
				
			||||||
            font-size: 12px;
 | 
					            font-size: 12px;
 | 
				
			||||||
            line-height: 18px;
 | 
					            line-height: 18px;
 | 
				
			||||||
            padding: 0px;
 | 
					            padding: 0px;
 | 
				
			||||||
@ -174,18 +148,15 @@
 | 
				
			|||||||
            margin-bottom: 0px;
 | 
					            margin-bottom: 0px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .ship-user-name {
 | 
					        .shipping-address-name {
 | 
				
			||||||
            max-width: 250px
 | 
					            max-width: 160px;
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 15px;
 | 
					            font-size: 15px;
 | 
				
			||||||
            line-height: 22px;
 | 
					            line-height: 22px;
 | 
				
			||||||
            padding: 0px;
 | 
					            padding: 0px;
 | 
				
			||||||
            margin: 0px;
 | 
					            margin: 0px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        .ship-user-address {
 | 
					
 | 
				
			||||||
            font-style: normal;
 | 
					        .shipping-address {
 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 10px;
 | 
					            font-size: 10px;
 | 
				
			||||||
            line-height: 15px;
 | 
					            line-height: 15px;
 | 
				
			||||||
            color: #595959;
 | 
					            color: #595959;
 | 
				
			||||||
@ -193,27 +164,15 @@
 | 
				
			|||||||
            margin: 0px;
 | 
					            margin: 0px;
 | 
				
			||||||
            width: 160px;
 | 
					            width: 160px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        .ship-user-phone {
 | 
					 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 10px;
 | 
					 | 
				
			||||||
            line-height: 15px;
 | 
					 | 
				
			||||||
            color: #595959;
 | 
					 | 
				
			||||||
            padding: 0px;
 | 
					 | 
				
			||||||
            margin: 0px;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        /* -------------------------- */
 | 
					        /* -- Billing -- */
 | 
				
			||||||
        /* billing style */
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .bill-address-container {
 | 
					        .billing-address-container {
 | 
				
			||||||
            float: left;
 | 
					            float: left;
 | 
				
			||||||
            padding-left: 30px;
 | 
					            padding-left: 30px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .bill-to {
 | 
					        .billing-address-label {
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 12px;
 | 
					            font-size: 12px;
 | 
				
			||||||
            line-height: 18px;
 | 
					            line-height: 18px;
 | 
				
			||||||
            padding: 0px;
 | 
					            padding: 0px;
 | 
				
			||||||
@ -221,19 +180,15 @@
 | 
				
			|||||||
            margin-bottom: 0px;
 | 
					            margin-bottom: 0px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .bill-user-name {
 | 
					        .billing-address-name {
 | 
				
			||||||
            max-width: 250px
 | 
					            max-width: 160px;
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 15px;
 | 
					            font-size: 15px;
 | 
				
			||||||
            line-height: 22px;
 | 
					            line-height: 22px;
 | 
				
			||||||
            padding: 0px;
 | 
					            padding: 0px;
 | 
				
			||||||
            margin: 0px;
 | 
					            margin: 0px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .bill-user-address {
 | 
					        .billing-address {
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 10px;
 | 
					            font-size: 10px;
 | 
				
			||||||
            line-height: 15px;
 | 
					            line-height: 15px;
 | 
				
			||||||
            color: #595959;
 | 
					            color: #595959;
 | 
				
			||||||
@ -242,28 +197,20 @@
 | 
				
			|||||||
            width: 160px;
 | 
					            width: 160px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .bill-user-phone {
 | 
					        /* -- Items Table -- */
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 10px;
 | 
					 | 
				
			||||||
            line-height: 15px;
 | 
					 | 
				
			||||||
            color: #595959;
 | 
					 | 
				
			||||||
            padding: 0px;
 | 
					 | 
				
			||||||
            margin: 0px;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .table2 {
 | 
					        .items-table {
 | 
				
			||||||
            margin-top: 35px;
 | 
					            margin-top: 35px;
 | 
				
			||||||
            padding: 0px 30px 10px 30px;
 | 
					            padding: 0px 30px 10px 30px;
 | 
				
			||||||
            page-break-before: avoid;
 | 
					            page-break-before: avoid;
 | 
				
			||||||
            page-break-after: auto;
 | 
					            page-break-after: auto;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .table2 hr {
 | 
					        .items-table hr {
 | 
				
			||||||
            height:0.1px;
 | 
					            height: 0.1px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .ItemTableHeader {
 | 
					        .item-table-heading {
 | 
				
			||||||
            font-size: 13.5;
 | 
					            font-size: 13.5;
 | 
				
			||||||
            text-align: center;
 | 
					            text-align: center;
 | 
				
			||||||
            color: rgba(0, 0, 0, 0.85);
 | 
					            color: rgba(0, 0, 0, 0.85);
 | 
				
			||||||
@ -271,85 +218,86 @@
 | 
				
			|||||||
            padding-bottom: 10px;
 | 
					            padding-bottom: 10px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        tr.main-table-header th {
 | 
					        tr.item-table-heading-row th {
 | 
				
			||||||
            border-bottom: 0.620315px solid #E8E8E8;
 | 
					            border-bottom: 0.620315px solid #E8E8E8;
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 12px;
 | 
					            font-size: 12px;
 | 
				
			||||||
            line-height: 18px;
 | 
					            line-height: 18px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .main-table-header {
 | 
					        .item-table-heading-row {
 | 
				
			||||||
            margin-bottom: 10px;
 | 
					            margin-bottom: 10px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        tr.item-details td {
 | 
					        tr.item-row td {
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 12px;
 | 
					            font-size: 12px;
 | 
				
			||||||
            line-height: 18px;
 | 
					            line-height: 18px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .items {
 | 
					        .item-cell {
 | 
				
			||||||
            font-size: 13;
 | 
					            font-size: 13;
 | 
				
			||||||
            color: rgba(0, 0, 0, 0.6);
 | 
					            color: #040405;
 | 
				
			||||||
            text-align: center;
 | 
					            text-align: center;
 | 
				
			||||||
            padding: 5px;
 | 
					            padding: 5px;
 | 
				
			||||||
            padding-top: 10px;
 | 
					            padding-top: 10px;
 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        .padd8 {
 | 
					 | 
				
			||||||
            padding-top: 8px;
 | 
					 | 
				
			||||||
            padding-bottom: 8px;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        .padd2 {
 | 
					 | 
				
			||||||
            padding-top: 2px;
 | 
					 | 
				
			||||||
            padding-bottom: 2px;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        .table3 {
 | 
					 | 
				
			||||||
            border-top: none;
 | 
					 | 
				
			||||||
            box-sizing: border-box;
 | 
					 | 
				
			||||||
            width: 630px;
 | 
					 | 
				
			||||||
            page-break-inside: avoid;
 | 
					 | 
				
			||||||
            page-break-before: auto;
 | 
					 | 
				
			||||||
            page-break-after: auto;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        .total-border-left {
 | 
					 | 
				
			||||||
            border: 1px solid #E8E8E8!important;
 | 
					 | 
				
			||||||
            border-right: 0px !important;
 | 
					 | 
				
			||||||
            padding-top: 0px;
 | 
					 | 
				
			||||||
            padding:8px !important;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        .total-border-right {
 | 
					 | 
				
			||||||
            border: 1px solid #E8E8E8!important;
 | 
					 | 
				
			||||||
            border-left: 0px !important;
 | 
					 | 
				
			||||||
            padding-top: 0px;
 | 
					 | 
				
			||||||
            padding:8px !important;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        .inv-item {
 | 
					 | 
				
			||||||
            border-color: #d9d9d9;
 | 
					            border-color: #d9d9d9;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .no-border {
 | 
					        .item-description {
 | 
				
			||||||
            border: none;
 | 
					            color: #595959;
 | 
				
			||||||
 | 
					            font-size: 9px;
 | 
				
			||||||
 | 
					            line-height: 12px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .desc {
 | 
					        /* -- Total Display Table -- */
 | 
				
			||||||
            font-weight: 100;
 | 
					
 | 
				
			||||||
            text-align: justify;
 | 
					        .total-display-container {
 | 
				
			||||||
            font-size: 10px;
 | 
					            padding: 0 25px;
 | 
				
			||||||
            margin-bottom: 15px;
 | 
					 | 
				
			||||||
            margin-top:7px;
 | 
					 | 
				
			||||||
            color:rgba(0, 0, 0, 0.85);
 | 
					 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .total-display-table {
 | 
				
			||||||
 | 
					            border-top: none;
 | 
				
			||||||
 | 
					            box-sizing: border-box;
 | 
				
			||||||
 | 
					            page-break-inside: avoid;
 | 
				
			||||||
 | 
					            page-break-before: auto;
 | 
				
			||||||
 | 
					            page-break-after: auto;
 | 
				
			||||||
 | 
					            margin-left: 500px;
 | 
				
			||||||
 | 
					            margin-top: 20px;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .total-table-attribute-label {
 | 
				
			||||||
 | 
					            font-size: 12px;
 | 
				
			||||||
 | 
					            color: #55547A;
 | 
				
			||||||
 | 
					            text-align: left;
 | 
				
			||||||
 | 
					            padding-left: 10px;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .total-table-attribute-value {
 | 
				
			||||||
 | 
					            font-weight: bold;
 | 
				
			||||||
 | 
					            text-align: right;
 | 
				
			||||||
 | 
					            font-size: 12px;
 | 
				
			||||||
 | 
					            color: #040405;
 | 
				
			||||||
 | 
					            padding-right: 10px;
 | 
				
			||||||
 | 
					            padding-top: 2px;
 | 
				
			||||||
 | 
					            padding-bottom: 2px;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .total-border-left {
 | 
				
			||||||
 | 
					            border: 1px solid #E8E8E8 !important;
 | 
				
			||||||
 | 
					            border-right: 0px !important;
 | 
				
			||||||
 | 
					            padding-top: 0px;
 | 
				
			||||||
 | 
					            padding: 8px !important;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .total-border-right {
 | 
				
			||||||
 | 
					            border: 1px solid #E8E8E8 !important;
 | 
				
			||||||
 | 
					            border-left: 0px !important;
 | 
				
			||||||
 | 
					            padding-top: 0px;
 | 
				
			||||||
 | 
					            padding: 8px !important;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        /* -- Notes -- */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .notes {
 | 
					        .notes {
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: 300;
 | 
					 | 
				
			||||||
            font-size: 12px;
 | 
					            font-size: 12px;
 | 
				
			||||||
            color: #595959;
 | 
					            color: #595959;
 | 
				
			||||||
            margin-top: 15px;
 | 
					            margin-top: 15px;
 | 
				
			||||||
@ -360,8 +308,6 @@
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .notes-label {
 | 
					        .notes-label {
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 15px;
 | 
					            font-size: 15px;
 | 
				
			||||||
            line-height: 22px;
 | 
					            line-height: 22px;
 | 
				
			||||||
            letter-spacing: 0.05em;
 | 
					            letter-spacing: 0.05em;
 | 
				
			||||||
@ -371,13 +317,69 @@
 | 
				
			|||||||
            padding-bottom: 10px;
 | 
					            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>
 | 
					    </style>
 | 
				
			||||||
</head>
 | 
					</head>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<body>
 | 
					<body>
 | 
				
			||||||
    <div class="header-table">
 | 
					    <div class="header-container">
 | 
				
			||||||
        <table width="100%">
 | 
					        <table width="100%">
 | 
				
			||||||
            <tr>
 | 
					            <tr>
 | 
				
			||||||
                <td class="header-center">
 | 
					                <td class="text-center">
 | 
				
			||||||
                    @if($logo)
 | 
					                    @if($logo)
 | 
				
			||||||
                    <img class="header-logo" src="{{ $logo }}" alt="Company Logo">
 | 
					                    <img class="header-logo" src="{{ $logo }}" alt="Company Logo">
 | 
				
			||||||
                    @else
 | 
					                    @else
 | 
				
			||||||
@ -388,39 +390,39 @@
 | 
				
			|||||||
                </td>
 | 
					                </td>
 | 
				
			||||||
            </tr>
 | 
					            </tr>
 | 
				
			||||||
        </table>
 | 
					        </table>
 | 
				
			||||||
        <hr class="header-line" />
 | 
					        <hr class="header-bottom-divider" />
 | 
				
			||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
    <div class="wrapper">
 | 
					    <div class="wrapper">
 | 
				
			||||||
        <div class="address">
 | 
					        <div class="company-details-container">
 | 
				
			||||||
            <div class="company">
 | 
					            <div class="company-address-container">
 | 
				
			||||||
                @include('app.pdf.estimate.partials.company-address')
 | 
					                @include('app.pdf.estimate.partials.company-address')
 | 
				
			||||||
            </div>
 | 
					            </div>
 | 
				
			||||||
            <div class="job-add">
 | 
					            <div class="estimate-details-container">
 | 
				
			||||||
                <table>
 | 
					                <table class="estimate-details-table">
 | 
				
			||||||
                    <tr>
 | 
					                    <tr>
 | 
				
			||||||
                        <td class="textStyle1" style="text-align: left; color: #55547A">Estimate Number</td>
 | 
					                        <td class="attribute-label">Estimate Number</td>
 | 
				
			||||||
                        <td class="textStyle2">  {{$estimate->estimate_number}}</td>
 | 
					                        <td class="attribute-value">  {{$estimate->estimate_number}}</td>
 | 
				
			||||||
                    </tr>
 | 
					                    </tr>
 | 
				
			||||||
                    <tr>
 | 
					                    <tr>
 | 
				
			||||||
                        <td class="textStyle1" style="text-align: left; color: #55547A">Estimate Date </td>
 | 
					                        <td class="attribute-label">Estimate Date </td>
 | 
				
			||||||
                        <td class="textStyle2">  {{$estimate->formattedEstimateDate}}</td>
 | 
					                        <td class="attribute-value">  {{$estimate->formattedEstimateDate}}</td>
 | 
				
			||||||
                    </tr>
 | 
					                    </tr>
 | 
				
			||||||
                    <tr>
 | 
					                    <tr>
 | 
				
			||||||
                        <td class="textStyle1" style="text-align: left; color: #55547A">Expiry Date</td>
 | 
					                        <td class="attribute-label">Expiry Date</td>
 | 
				
			||||||
                        <td class="textStyle2">  {{$estimate->formattedExpiryDate}}</td>
 | 
					                        <td class="attribute-value">  {{$estimate->formattedExpiryDate}}</td>
 | 
				
			||||||
                    </tr>
 | 
					                    </tr>
 | 
				
			||||||
                </table>
 | 
					                </table>
 | 
				
			||||||
            </div>
 | 
					            </div>
 | 
				
			||||||
            <div style="clear: both;"></div>
 | 
					            <div style="clear: both;"></div>
 | 
				
			||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
        <div class="bill-add">
 | 
					        <div class="customer-address-container">
 | 
				
			||||||
            <div class="bill-address-container">
 | 
					            <div class="billing-address-container">
 | 
				
			||||||
                @include('app.pdf.estimate.partials.billing-address')
 | 
					                @include('app.pdf.estimate.partials.billing-address')
 | 
				
			||||||
            </div>
 | 
					            </div>
 | 
				
			||||||
            @if($estimate->user->billingaddress)
 | 
					            @if($estimate->user->billingaddress)
 | 
				
			||||||
                <div class="ship-address-container">
 | 
					            <div class="shipping-address-container">
 | 
				
			||||||
            @else
 | 
					            @else
 | 
				
			||||||
                <div class="ship-address-container " style="float:left;padding-left:0px;">
 | 
					            <div class="shipping-address-container--left">
 | 
				
			||||||
            @endif
 | 
					            @endif
 | 
				
			||||||
            @include('app.pdf.estimate.partials.shipping-address')
 | 
					            @include('app.pdf.estimate.partials.shipping-address')
 | 
				
			||||||
            </div>
 | 
					            </div>
 | 
				
			||||||
@ -432,4 +434,5 @@
 | 
				
			|||||||
            @include('app.pdf.estimate.partials.notes')
 | 
					            @include('app.pdf.estimate.partials.notes')
 | 
				
			||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
</body>
 | 
					</body>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
</html>
 | 
					</html>
 | 
				
			||||||
 | 
				
			|||||||
@ -1,9 +1,11 @@
 | 
				
			|||||||
<!DOCTYPE html>
 | 
					<!DOCTYPE html>
 | 
				
			||||||
<html>
 | 
					<html>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<head>
 | 
					<head>
 | 
				
			||||||
    <title>Estimate</title>
 | 
					    <title>Estimate</title>
 | 
				
			||||||
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
 | 
					    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 | 
				
			||||||
    <style type="text/css">
 | 
					    <style type="text/css">
 | 
				
			||||||
 | 
					        /* -- Base -- */
 | 
				
			||||||
        body {
 | 
					        body {
 | 
				
			||||||
            font-family: "DejaVu Sans";
 | 
					            font-family: "DejaVu Sans";
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
@ -11,22 +13,21 @@
 | 
				
			|||||||
        html {
 | 
					        html {
 | 
				
			||||||
            margin: 0px;
 | 
					            margin: 0px;
 | 
				
			||||||
            padding: 0px;
 | 
					            padding: 0px;
 | 
				
			||||||
 | 
					            margin-top: 50px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        table {
 | 
					        table {
 | 
				
			||||||
            border-collapse: collapse;
 | 
					            border-collapse: collapse;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .header-left {
 | 
					        hr {
 | 
				
			||||||
            padding-top: 45px;
 | 
					            color: rgba(0, 0, 0, 0.2);
 | 
				
			||||||
            padding-bottom: 45px;
 | 
					            border: 0.5px solid #EAF1FB;
 | 
				
			||||||
            padding-left: 30px;
 | 
					 | 
				
			||||||
            display:inline-block;
 | 
					 | 
				
			||||||
            width:30%;
 | 
					 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        @page {
 | 
					
 | 
				
			||||||
            margin-top: 60px !important;
 | 
					        /* -- Header -- */
 | 
				
			||||||
        }
 | 
					
 | 
				
			||||||
        .header-table {
 | 
					        .header-container {
 | 
				
			||||||
            background: #817AE3;
 | 
					            background: #817AE3;
 | 
				
			||||||
            position: absolute;
 | 
					            position: absolute;
 | 
				
			||||||
            width: 100%;
 | 
					            width: 100%;
 | 
				
			||||||
@ -34,99 +35,129 @@
 | 
				
			|||||||
            left: 0px;
 | 
					            left: 0px;
 | 
				
			||||||
            top: -60px;
 | 
					            top: -60px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .header-section-left {
 | 
				
			||||||
 | 
					            padding-top: 45px;
 | 
				
			||||||
 | 
					            padding-bottom: 45px;
 | 
				
			||||||
 | 
					            padding-left: 30px;
 | 
				
			||||||
 | 
					            display: inline-block;
 | 
				
			||||||
 | 
					            width: 30%;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .header-logo {
 | 
					        .header-logo {
 | 
				
			||||||
            position: absolute;
 | 
					            position: absolute;
 | 
				
			||||||
            height: 50px;
 | 
					            height: 50px;
 | 
				
			||||||
            text-transform: capitalize;
 | 
					            text-transform: capitalize;
 | 
				
			||||||
            color: #fff;
 | 
					            color: #fff;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        .header-right {
 | 
					
 | 
				
			||||||
            display:inline-block;
 | 
					        .header-section-right {
 | 
				
			||||||
            width:35%;
 | 
					            display: inline-block;
 | 
				
			||||||
            float:right;
 | 
					            width: 35%;
 | 
				
			||||||
 | 
					            float: right;
 | 
				
			||||||
            padding: 20px 30px 20px 0px;
 | 
					            padding: 20px 30px 20px 0px;
 | 
				
			||||||
            text-align: right;
 | 
					            text-align: right;
 | 
				
			||||||
            color:white;
 | 
					            color: white;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        .inv-flex{
 | 
					 | 
				
			||||||
            display:flex;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        .inv-data{
 | 
					 | 
				
			||||||
            text-align:right;
 | 
					 | 
				
			||||||
            margin-right:120px;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        .inv-value{
 | 
					 | 
				
			||||||
            text-align:left;
 | 
					 | 
				
			||||||
            margin-left:160px;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        .header {
 | 
					        .header {
 | 
				
			||||||
            font-size: 20px;
 | 
					            font-size: 20px;
 | 
				
			||||||
            color: rgba(0, 0, 0, 0.7);
 | 
					            color: rgba(0, 0, 0, 0.7);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .TextColor1 {
 | 
					        /* -- Estimate Details -- */
 | 
				
			||||||
            font-size: 16px;
 | 
					
 | 
				
			||||||
            color: rgba(0, 0, 0, 0.5);
 | 
					        .estimate-details-container {
 | 
				
			||||||
 | 
					            text-align: center;
 | 
				
			||||||
 | 
					            width: 40%;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .estimate-details-container h1 {
 | 
				
			||||||
 | 
					            margin: 0;
 | 
				
			||||||
 | 
					            font-size: 24px;
 | 
				
			||||||
 | 
					            line-height: 36px;
 | 
				
			||||||
 | 
					            text-align: right;
 | 
				
			||||||
 | 
					            font-family: "DejaVu Sans";
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .estimate-details-container h4 {
 | 
				
			||||||
 | 
					            margin: 0;
 | 
				
			||||||
 | 
					            font-size: 10px;
 | 
				
			||||||
 | 
					            line-height: 15px;
 | 
				
			||||||
 | 
					            text-align: right;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .estimate-details-container h3 {
 | 
				
			||||||
 | 
					            margin-bottom: 1px;
 | 
				
			||||||
 | 
					            margin-top: 0;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        /* -- Address -- */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .wrapper {
 | 
					        .wrapper {
 | 
				
			||||||
            display: block;
 | 
					            display: block;
 | 
				
			||||||
            margin-top: 60px;
 | 
					            margin-top: 60px;
 | 
				
			||||||
            padding-bottom: 20px;
 | 
					            padding-bottom: 20px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .address {
 | 
					        .address-container {
 | 
				
			||||||
            display: block;
 | 
					            display: block;
 | 
				
			||||||
            padding-top: 20px;
 | 
					            padding-top: 20px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        .company {
 | 
					
 | 
				
			||||||
 | 
					        /* -- Company Address -- */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .company-address-container {
 | 
				
			||||||
            padding: 0 0 0 30px;
 | 
					            padding: 0 0 0 30px;
 | 
				
			||||||
            display: inline;
 | 
					            display: inline;
 | 
				
			||||||
            float:left;
 | 
					            float: left;
 | 
				
			||||||
            width:30%;
 | 
					            width: 30%;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .company h1 {
 | 
					        .company-address-container {
 | 
				
			||||||
            font-style: normal;
 | 
					            padding-left: 30px;
 | 
				
			||||||
            font-weight: bold;
 | 
					            float: left;
 | 
				
			||||||
 | 
					            width: 30%;
 | 
				
			||||||
 | 
					            text-transform: capitalize;
 | 
				
			||||||
 | 
					            margin-bottom: 2px;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .company-address-container h1 {
 | 
				
			||||||
            font-size: 15px;
 | 
					            font-size: 15px;
 | 
				
			||||||
            line-height: 22px;
 | 
					            line-height: 22px;
 | 
				
			||||||
            letter-spacing: 0.05em;
 | 
					            letter-spacing: 0.05em;
 | 
				
			||||||
            margin-bottom: 0;
 | 
					            margin-bottom: 0px;
 | 
				
			||||||
 | 
					            margin-top: 10px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .company-add {
 | 
					        .company-address {
 | 
				
			||||||
            font-style: normal;
 | 
					            margin-top: 2px;
 | 
				
			||||||
            font-weight: normal;
 | 
					            text-align: left;
 | 
				
			||||||
            font-size: 10px;
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            font-size: 12px;
 | 
				
			||||||
            line-height: 15px;
 | 
					            line-height: 15px;
 | 
				
			||||||
            color: #595959;
 | 
					            color: #595959;
 | 
				
			||||||
            margin-top: 0px;
 | 
					 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        /* -------------------------- */
 | 
					        /* -- Billing -- */
 | 
				
			||||||
        /* billing style */
 | 
					
 | 
				
			||||||
        .bill-address-container {
 | 
					        .billing-address-container {
 | 
				
			||||||
            display: block;
 | 
					            display: block;
 | 
				
			||||||
            /* position: absolute; */
 | 
					            /* position: absolute; */
 | 
				
			||||||
            float:right;
 | 
					            float: right;
 | 
				
			||||||
            padding: 0 40px 0 0;
 | 
					            padding: 0 40px 0 0;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .bill-to {
 | 
					        .billing-address-label {
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 12px;
 | 
					            font-size: 12px;
 | 
				
			||||||
            line-height: 18px;
 | 
					            line-height: 18px;
 | 
				
			||||||
            padding: 0px;
 | 
					            padding: 0px;
 | 
				
			||||||
            margin-bottom: 0px;
 | 
					            margin-bottom: 0px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .bill-user-name {
 | 
					        .billing-address-name {
 | 
				
			||||||
            max-width: 250px
 | 
					            max-width: 160px;
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 15px;
 | 
					            font-size: 15px;
 | 
				
			||||||
            line-height: 22px;
 | 
					            line-height: 22px;
 | 
				
			||||||
            padding: 0px;
 | 
					            padding: 0px;
 | 
				
			||||||
@ -134,9 +165,7 @@
 | 
				
			|||||||
            margin-bottom: 0px;
 | 
					            margin-bottom: 0px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .bill-user-address {
 | 
					        .billing-address {
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 10px;
 | 
					            font-size: 10px;
 | 
				
			||||||
            line-height: 15px;
 | 
					            line-height: 15px;
 | 
				
			||||||
            color: #595959;
 | 
					            color: #595959;
 | 
				
			||||||
@ -144,37 +173,24 @@
 | 
				
			|||||||
            margin: 0px;
 | 
					            margin: 0px;
 | 
				
			||||||
            width: 170px;
 | 
					            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;
 | 
					            display: block;
 | 
				
			||||||
            float:right;
 | 
					            float: right;
 | 
				
			||||||
            padding: 0 30px 0 0;
 | 
					            padding: 0 30px 0 0;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .ship-to {
 | 
					        .shipping-address-label {
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 12px;
 | 
					            font-size: 12px;
 | 
				
			||||||
            line-height: 18px;
 | 
					            line-height: 18px;
 | 
				
			||||||
            padding: 0px;
 | 
					            padding: 0px;
 | 
				
			||||||
            margin-bottom: 0px;
 | 
					            margin-bottom: 0px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .ship-user-name {
 | 
					        .shipping-address-name {
 | 
				
			||||||
            max-width: 250px
 | 
					            max-width: 160px;
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 15px;
 | 
					            font-size: 15px;
 | 
				
			||||||
            line-height: 22px;
 | 
					            line-height: 22px;
 | 
				
			||||||
            padding: 0px;
 | 
					            padding: 0px;
 | 
				
			||||||
@ -182,9 +198,7 @@
 | 
				
			|||||||
            margin-bottom: 0px;
 | 
					            margin-bottom: 0px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .ship-user-address {
 | 
					        .shipping-address {
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 10px;
 | 
					            font-size: 10px;
 | 
				
			||||||
            line-height: 15px;
 | 
					            line-height: 15px;
 | 
				
			||||||
            color: #595959;
 | 
					            color: #595959;
 | 
				
			||||||
@ -193,192 +207,114 @@
 | 
				
			|||||||
            width: 170px;
 | 
					            width: 170px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .ship-user-phone {
 | 
					        .attribute-label {
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 10px;
 | 
					 | 
				
			||||||
            line-height: 15px;
 | 
					 | 
				
			||||||
            color: #595959;
 | 
					 | 
				
			||||||
            padding: 0px;
 | 
					 | 
				
			||||||
            margin: 0px;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        .job-add {
 | 
					 | 
				
			||||||
            display: inline;
 | 
					 | 
				
			||||||
            float: right;
 | 
					 | 
				
			||||||
            width:40%;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        .amount-due {
 | 
					 | 
				
			||||||
            background-color: #f2f2f2;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        .textRight {
 | 
					 | 
				
			||||||
            text-align: right;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        .textLeft {
 | 
					 | 
				
			||||||
            text-align: left;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        .textStyle1 {
 | 
					 | 
				
			||||||
            font-size: 12;
 | 
					            font-size: 12;
 | 
				
			||||||
            font-weight: bold;
 | 
					            font-weight: bold;
 | 
				
			||||||
            line-height:22px;
 | 
					            line-height: 22px;
 | 
				
			||||||
            color: rgba(0, 0, 0, 0.8);
 | 
					            color: rgba(0, 0, 0, 0.8);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .textStyle2 {
 | 
					        .attribute-value {
 | 
				
			||||||
            font-size: 12;
 | 
					            font-size: 12;
 | 
				
			||||||
            line-height:22px;
 | 
					            line-height: 22px;
 | 
				
			||||||
            color: rgba(0, 0, 0, 0.7);
 | 
					            color: rgba(0, 0, 0, 0.7);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .main-table-header td {
 | 
					        /* -- Items Table -- */
 | 
				
			||||||
            padding: 5px;
 | 
					 | 
				
			||||||
            padding-bottom: 10px;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .main-table-header {
 | 
					        .items-table {
 | 
				
			||||||
            border-bottom: 1px solid red;
 | 
					            padding: 30px 30px 10px 30px;
 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        .table2 {
 | 
					 | 
				
			||||||
            margin-top: 30px;
 | 
					 | 
				
			||||||
            padding: 0px 30px 10px 30px;
 | 
					 | 
				
			||||||
            page-break-before: avoid;
 | 
					            page-break-before: avoid;
 | 
				
			||||||
            page-break-after: auto;
 | 
					            page-break-after: auto;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        hr {
 | 
					        .items-table hr {
 | 
				
			||||||
            margin: 0 30px 0 30px;
 | 
					            height: 0.1px;
 | 
				
			||||||
            color:rgba(0, 0, 0, 0.2);
 | 
					            margin: 0 30px;
 | 
				
			||||||
            border: 0.5px solid #EAF1FB;
 | 
					 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .table2 hr {
 | 
					        .item-table-heading {
 | 
				
			||||||
            height:0.1px;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        .ItemTableHeader {
 | 
					 | 
				
			||||||
            font-size: 13.5;
 | 
					            font-size: 13.5;
 | 
				
			||||||
            text-align: center;
 | 
					            text-align: center;
 | 
				
			||||||
            color: rgba(0, 0, 0, 0.85);
 | 
					            color: rgba(0, 0, 0, 0.85);
 | 
				
			||||||
            padding: 5px;
 | 
					            padding: 5px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        tr.main-table-header th {
 | 
					        .item-table-heading-row td {
 | 
				
			||||||
 | 
					            padding: 5px;
 | 
				
			||||||
 | 
					            padding-bottom: 10px;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .item-table-heading-row {
 | 
				
			||||||
 | 
					            border-bottom: 1px solid red;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        tr.item-table-heading-row th {
 | 
				
			||||||
            border-bottom: 0.620315px solid #E8E8E8;
 | 
					            border-bottom: 0.620315px solid #E8E8E8;
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 12px;
 | 
					            font-size: 12px;
 | 
				
			||||||
            line-height: 18px;
 | 
					            line-height: 18px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        tr.item-details td {
 | 
					        tr.item-row td {
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 12px;
 | 
					            font-size: 12px;
 | 
				
			||||||
            line-height: 18px;
 | 
					            line-height: 18px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .items {
 | 
					        .item-cell {
 | 
				
			||||||
            font-size: 13;
 | 
					            font-size: 13;
 | 
				
			||||||
            color: rgba(0, 0, 0, 0.6);
 | 
					            color: #040405;
 | 
				
			||||||
            text-align: center;
 | 
					            text-align: center;
 | 
				
			||||||
            padding: 5px;
 | 
					            padding: 5px;
 | 
				
			||||||
            padding-top: 10px;
 | 
					            padding-top: 10px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .note-header {
 | 
					        .item-description {
 | 
				
			||||||
            font-size: 13;
 | 
					            color: #595959;
 | 
				
			||||||
            color: rgba(0, 0, 0, 0.6);
 | 
					            font-size: 9px;
 | 
				
			||||||
 | 
					            line-height: 12px;
 | 
				
			||||||
 | 
					            page-break-inside: avoid;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .note-text {
 | 
					        /* -- Total Display Table -- */
 | 
				
			||||||
            font-size: 10;
 | 
					
 | 
				
			||||||
            color: rgba(0, 0, 0, 0.6);
 | 
					        .total-display-container {
 | 
				
			||||||
 | 
					            padding: 0 25px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .padd8 {
 | 
					        .item-cell-table-hr {
 | 
				
			||||||
            padding-top: 8px;
 | 
					            margin: 0 25px 0 30px;
 | 
				
			||||||
            padding-bottom: 8px;
 | 
					 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .padd2 {
 | 
					        .total-display-table {
 | 
				
			||||||
 | 
					            box-sizing: border-box;
 | 
				
			||||||
 | 
					            page-break-inside: avoid;
 | 
				
			||||||
 | 
					            page-break-before: auto;
 | 
				
			||||||
 | 
					            page-break-after: auto;
 | 
				
			||||||
 | 
					            margin-left: 500px;
 | 
				
			||||||
 | 
					            border: 1px solid #EAF1FB;
 | 
				
			||||||
 | 
					            border-top: none;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .total-table-attribute-label {
 | 
				
			||||||
 | 
					            font-size: 12px;
 | 
				
			||||||
 | 
					            color: #55547A;
 | 
				
			||||||
 | 
					            text-align: left;
 | 
				
			||||||
 | 
					            padding-left: 10px;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .total-table-attribute-value {
 | 
				
			||||||
 | 
					            font-weight: bold;
 | 
				
			||||||
 | 
					            text-align: right;
 | 
				
			||||||
 | 
					            font-size: 12px;
 | 
				
			||||||
 | 
					            color: #040405;
 | 
				
			||||||
 | 
					            padding-right: 10px;
 | 
				
			||||||
            padding-top: 2px;
 | 
					            padding-top: 2px;
 | 
				
			||||||
            padding-bottom: 2px;
 | 
					            padding-bottom: 2px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .table3 {
 | 
					        /* -- Notes -- */
 | 
				
			||||||
            border: 1px solid #EAF1FB;
 | 
					 | 
				
			||||||
            border-top: none;
 | 
					 | 
				
			||||||
            box-sizing: border-box;
 | 
					 | 
				
			||||||
            width: 630px;
 | 
					 | 
				
			||||||
            page-break-inside: avoid;
 | 
					 | 
				
			||||||
            page-break-before: auto;
 | 
					 | 
				
			||||||
            page-break-after: auto;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        .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;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        .inv-item {
 | 
					 | 
				
			||||||
            border-color: #d9d9d9;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        .no-border {
 | 
					 | 
				
			||||||
            border: none;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        .desc {
 | 
					 | 
				
			||||||
            font-weight: 100;
 | 
					 | 
				
			||||||
            text-align: justify;
 | 
					 | 
				
			||||||
            font-size: 10px;
 | 
					 | 
				
			||||||
            margin-bottom: 15px;
 | 
					 | 
				
			||||||
            margin-top:7px;
 | 
					 | 
				
			||||||
            color:rgba(0, 0, 0, 0.85);
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        .company-details{
 | 
					 | 
				
			||||||
            text-align: center;
 | 
					 | 
				
			||||||
            width: 40%;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        .company-details h1 {
 | 
					 | 
				
			||||||
            margin:0;
 | 
					 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: 500;
 | 
					 | 
				
			||||||
            font-size: 24px;
 | 
					 | 
				
			||||||
            line-height: 36px;
 | 
					 | 
				
			||||||
            text-align: right;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        .company-details h4 {
 | 
					 | 
				
			||||||
            margin:0;
 | 
					 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 10px;
 | 
					 | 
				
			||||||
            line-height: 15px;
 | 
					 | 
				
			||||||
            text-align: right;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        .company-details h3 {
 | 
					 | 
				
			||||||
             margin-bottom:1px;
 | 
					 | 
				
			||||||
             margin-top:0;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .notes {
 | 
					        .notes {
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: 300;
 | 
					 | 
				
			||||||
            font-size: 12px;
 | 
					            font-size: 12px;
 | 
				
			||||||
            color: #595959;
 | 
					            color: #595959;
 | 
				
			||||||
            margin-top: 15px;
 | 
					            margin-top: 15px;
 | 
				
			||||||
@ -389,8 +325,6 @@
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .notes-label {
 | 
					        .notes-label {
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 15px;
 | 
					            font-size: 15px;
 | 
				
			||||||
            line-height: 22px;
 | 
					            line-height: 22px;
 | 
				
			||||||
            letter-spacing: 0.05em;
 | 
					            letter-spacing: 0.05em;
 | 
				
			||||||
@ -400,23 +334,79 @@
 | 
				
			|||||||
            padding-bottom: 10px;
 | 
					            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>
 | 
					    </style>
 | 
				
			||||||
</head>
 | 
					</head>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<body>
 | 
					<body>
 | 
				
			||||||
    <div class="header-table">
 | 
					    <div class="header-container">
 | 
				
			||||||
        <table width="100%">
 | 
					        <table width="100%">
 | 
				
			||||||
            <tr>
 | 
					            <tr>
 | 
				
			||||||
                @if($logo)
 | 
					                @if($logo)
 | 
				
			||||||
                    <td width="60%" class="header-left">
 | 
					                <td width="60%" class="header-section-left">
 | 
				
			||||||
                    <img class="header-logo" src="{{ $logo }}" alt="Company Logo">
 | 
					                    <img class="header-logo" src="{{ $logo }}" alt="Company Logo">
 | 
				
			||||||
                    @else
 | 
					                    @else
 | 
				
			||||||
                    <td width="60%" class="header-left" style="padding-top: 0px;">
 | 
					                <td width="60%" class="header-section-left" style="padding-top: 0px;">
 | 
				
			||||||
                    @if($estimate->user->company)
 | 
					                    @if($estimate->user->company)
 | 
				
			||||||
                    <h1 class="header-logo"> {{$estimate->user->company->name}} </h1>
 | 
					                    <h1 class="header-logo"> {{$estimate->user->company->name}} </h1>
 | 
				
			||||||
                    @endif
 | 
					                    @endif
 | 
				
			||||||
                    @endif
 | 
					                    @endif
 | 
				
			||||||
                </td>
 | 
					                </td>
 | 
				
			||||||
                <td width="40%" class="header-right company-details">
 | 
					                <td width="40%" class="header-section-right estimate-details-container">
 | 
				
			||||||
                    <h1>Estimate</h1>
 | 
					                    <h1>Estimate</h1>
 | 
				
			||||||
                    <h4>{{$estimate->estimate_number}}</h4>
 | 
					                    <h4>{{$estimate->estimate_number}}</h4>
 | 
				
			||||||
                    <h4>{{$estimate->formattedEstimateDate}}</h4>
 | 
					                    <h4>{{$estimate->formattedEstimateDate}}</h4>
 | 
				
			||||||
@ -426,24 +416,24 @@
 | 
				
			|||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
    <hr>
 | 
					    <hr>
 | 
				
			||||||
    <div class="wrapper">
 | 
					    <div class="wrapper">
 | 
				
			||||||
        <div class="address">
 | 
					        <div class="address-container">
 | 
				
			||||||
            <div class="company">
 | 
					            <div class="company-address-container">
 | 
				
			||||||
                @include('app.pdf.estimate.partials.company-address')
 | 
					                @include('app.pdf.estimate.partials.company-address')
 | 
				
			||||||
            </div>
 | 
					            </div>
 | 
				
			||||||
            <div class="ship-address-container">
 | 
					            <div class="shipping-address-container">
 | 
				
			||||||
                @include('app.pdf.estimate.partials.shipping-address')
 | 
					                @include('app.pdf.estimate.partials.shipping-address')
 | 
				
			||||||
            </div>
 | 
					            </div>
 | 
				
			||||||
            @if($estimate->user->shippingaddress)
 | 
					            @if($estimate->user->shippingaddress)
 | 
				
			||||||
                <div class="bill-address-container">
 | 
					            <div class="billing-address-container">
 | 
				
			||||||
            @else
 | 
					            @else
 | 
				
			||||||
                <div class="bill-address-container" style="float:right;padding-right:0px;">
 | 
					            <div class="billing-address-container" style="float:right; padding-right:0px;">
 | 
				
			||||||
            @endif
 | 
					            @endif
 | 
				
			||||||
                @include('app.pdf.estimate.partials.billing-address')
 | 
					                @include('app.pdf.estimate.partials.billing-address')
 | 
				
			||||||
            </div>
 | 
					            </div>
 | 
				
			||||||
            <div style="clear: both;"></div>
 | 
					            <div style="clear: both;"></div>
 | 
				
			||||||
        </div>
 | 
					 | 
				
			||||||
            @include('app.pdf.estimate.partials.table')
 | 
					            @include('app.pdf.estimate.partials.table')
 | 
				
			||||||
            @include('app.pdf.estimate.partials.notes')
 | 
					            @include('app.pdf.estimate.partials.notes')
 | 
				
			||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
</body>
 | 
					</body>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
</html>
 | 
					</html>
 | 
				
			||||||
 | 
				
			|||||||
@ -1,10 +1,12 @@
 | 
				
			|||||||
<!DOCTYPE html>
 | 
					<!DOCTYPE html>
 | 
				
			||||||
<html>
 | 
					<html>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<head>
 | 
					<head>
 | 
				
			||||||
    <title>Estimate</title>
 | 
					    <title>Estimate</title>
 | 
				
			||||||
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
 | 
					    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    <style type="text/css">
 | 
					    <style type="text/css">
 | 
				
			||||||
 | 
					        /* -- Base -- */
 | 
				
			||||||
        body {
 | 
					        body {
 | 
				
			||||||
            font-family: "DejaVu Sans";
 | 
					            font-family: "DejaVu Sans";
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
@ -12,147 +14,138 @@
 | 
				
			|||||||
        html {
 | 
					        html {
 | 
				
			||||||
            margin: 0px;
 | 
					            margin: 0px;
 | 
				
			||||||
            padding: 0px;
 | 
					            padding: 0px;
 | 
				
			||||||
 | 
					            margin-top: 50px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        table {
 | 
					        table {
 | 
				
			||||||
            border-collapse: collapse;
 | 
					            border-collapse: collapse;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .header-line {
 | 
					 | 
				
			||||||
            color:rgba(0, 0, 0, 0.2);
 | 
					 | 
				
			||||||
            position: absolute;
 | 
					 | 
				
			||||||
            top: 80px;
 | 
					 | 
				
			||||||
            left: 0px;
 | 
					 | 
				
			||||||
            right: -70px;
 | 
					 | 
				
			||||||
            width: 100%;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        hr {
 | 
					        hr {
 | 
				
			||||||
            color:rgba(0, 0, 0, 0.2);
 | 
					            color: rgba(0, 0, 0, 0.2);
 | 
				
			||||||
            border: 0.5px solid #EAF1FB;
 | 
					            border: 0.5px solid #EAF1FB;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .items-table-hr{
 | 
					        /* -- Header -- */
 | 
				
			||||||
            margin: 0 30px 0 30px;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .header-left {
 | 
					        .header-container {
 | 
				
			||||||
            padding-top: 45px;
 | 
					 | 
				
			||||||
            padding-bottom: 45px;
 | 
					 | 
				
			||||||
            padding-left: 30px;
 | 
					 | 
				
			||||||
            display:inline-block;
 | 
					 | 
				
			||||||
            width:30%;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        .header-table {
 | 
					 | 
				
			||||||
            position: absolute;
 | 
					            position: absolute;
 | 
				
			||||||
            width: 100%;
 | 
					            width: 100%;
 | 
				
			||||||
            height: 150px;
 | 
					            height: 150px;
 | 
				
			||||||
            left: 0px;
 | 
					            left: 0px;
 | 
				
			||||||
            top: -60px;
 | 
					            top: -60px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .header-section-left {
 | 
				
			||||||
 | 
					            padding-top: 45px;
 | 
				
			||||||
 | 
					            padding-bottom: 45px;
 | 
				
			||||||
 | 
					            padding-left: 30px;
 | 
				
			||||||
 | 
					            display: inline-block;
 | 
				
			||||||
 | 
					            width: 30%;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .header-bottom-divider {
 | 
				
			||||||
 | 
					            color: rgba(0, 0, 0, 0.2);
 | 
				
			||||||
 | 
					            position: absolute;
 | 
				
			||||||
 | 
					            top: 100px;
 | 
				
			||||||
 | 
					            left: 0px;
 | 
				
			||||||
 | 
					            width: 100%;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .header-logo {
 | 
					        .header-logo {
 | 
				
			||||||
            position: absolute;
 | 
					            position: absolute;
 | 
				
			||||||
            height: 50px;
 | 
					            height: 50px;
 | 
				
			||||||
            text-transform: capitalize;
 | 
					            text-transform: capitalize;
 | 
				
			||||||
            color: #817AE3;
 | 
					            color: #817AE3;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        .header-right {
 | 
					
 | 
				
			||||||
            display:inline-block;
 | 
					        .header-section-right {
 | 
				
			||||||
 | 
					            display: inline-block;
 | 
				
			||||||
            position: absolute;
 | 
					            position: absolute;
 | 
				
			||||||
            right:0;
 | 
					            right: 0;
 | 
				
			||||||
            padding: 15px 30px 15px 0px;
 | 
					            padding: 15px 30px 15px 0px;
 | 
				
			||||||
            float: right;
 | 
					            float: right;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        .inv-flex{
 | 
					
 | 
				
			||||||
            display:flex;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        .inv-data{
 | 
					 | 
				
			||||||
            text-align:right;
 | 
					 | 
				
			||||||
            margin-right:120px;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        .inv-value{
 | 
					 | 
				
			||||||
            text-align:left;
 | 
					 | 
				
			||||||
            margin-left:160px;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        .header {
 | 
					        .header {
 | 
				
			||||||
            font-size: 20px;
 | 
					            font-size: 20px;
 | 
				
			||||||
            color: rgba(0, 0, 0, 0.7);
 | 
					            color: rgba(0, 0, 0, 0.7);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .TextColor1 {
 | 
					        /* -- Company Address -- */
 | 
				
			||||||
            font-size: 16px;
 | 
					
 | 
				
			||||||
            color: rgba(0, 0, 0, 0.5);
 | 
					        .company-address-container {
 | 
				
			||||||
 | 
					            width: auto;
 | 
				
			||||||
 | 
					            text-transform: capitalize;
 | 
				
			||||||
 | 
					            margin-bottom: 2px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        @page {
 | 
					        .company-address-container h1 {
 | 
				
			||||||
            margin-top: 60px !important;
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            font-size: 15px;
 | 
				
			||||||
 | 
					            line-height: 22px;
 | 
				
			||||||
 | 
					            letter-spacing: 0.05em;
 | 
				
			||||||
 | 
					            margin-bottom: 0px;
 | 
				
			||||||
 | 
					            margin-top: 10px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .company-address {
 | 
				
			||||||
 | 
					            margin-top: 2px;
 | 
				
			||||||
 | 
					            text-align: left;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            font-size: 12px;
 | 
				
			||||||
 | 
					            line-height: 15px;
 | 
				
			||||||
 | 
					            color: #595959;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        /* -- Content Wrapper -- */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .wrapper {
 | 
					        .wrapper {
 | 
				
			||||||
            display: block;
 | 
					            display: block;
 | 
				
			||||||
           padding-top: 50px;
 | 
					            padding-top: 100px;
 | 
				
			||||||
            padding-bottom: 20px;
 | 
					            padding-bottom: 20px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .address {
 | 
					        .main-content {
 | 
				
			||||||
            display: inline-block;
 | 
					 | 
				
			||||||
            padding-top: 100px
 | 
					 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .bill-add {
 | 
					        .customer-address-container {
 | 
				
			||||||
            display: inline;
 | 
					            display: inline;
 | 
				
			||||||
            float:left;
 | 
					            float: left;
 | 
				
			||||||
            width:40%;
 | 
					            width: 40%;
 | 
				
			||||||
            padding: 0 0 0 30px;
 | 
					            padding: 0 0 0 30px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        .company {
 | 
					
 | 
				
			||||||
            padding-left: 30px;
 | 
					        /* -- Shipping -- */
 | 
				
			||||||
            display: inline;
 | 
					
 | 
				
			||||||
            float:left;
 | 
					        .shipping-address-container {
 | 
				
			||||||
            width:30%;
 | 
					            float: right;
 | 
				
			||||||
 | 
					            display: block;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .company h1 {
 | 
					        .shipping-address-container--left {
 | 
				
			||||||
            font-style: normal;
 | 
					            float: left;
 | 
				
			||||||
            font-weight: bold;
 | 
					            padding-left: 0;
 | 
				
			||||||
            font-size: 18px;
 | 
					 | 
				
			||||||
            line-height: 22px;
 | 
					 | 
				
			||||||
            letter-spacing: 0.05em;
 | 
					 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .company-add {
 | 
					        .shipping-address-label {
 | 
				
			||||||
            text-align: left;
 | 
					 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 10px;
 | 
					 | 
				
			||||||
            line-height: 15px;
 | 
					 | 
				
			||||||
            color: #595959;
 | 
					 | 
				
			||||||
            margin: 0px;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
         /* -------------------------- */
 | 
					 | 
				
			||||||
        /* shipping style */
 | 
					 | 
				
			||||||
        .ship-to {
 | 
					 | 
				
			||||||
            padding-top: 5px;
 | 
					            padding-top: 5px;
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 12px;
 | 
					            font-size: 12px;
 | 
				
			||||||
            line-height: 18px;
 | 
					            line-height: 18px;
 | 
				
			||||||
            margin-bottom: 0px;
 | 
					            margin-bottom: 0px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .ship-user-name {
 | 
					        .shipping-address-name {
 | 
				
			||||||
            padding: 0px;
 | 
					            padding: 0px;
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 15px;
 | 
					            font-size: 15px;
 | 
				
			||||||
            line-height: 22px;
 | 
					            line-height: 22px;
 | 
				
			||||||
            margin: 0px;
 | 
					            margin: 0px;
 | 
				
			||||||
 | 
					            max-width: 160px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .ship-user-address {
 | 
					        .shipping-address {
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 10px;
 | 
					            font-size: 10px;
 | 
				
			||||||
            line-height: 15px;
 | 
					            line-height: 15px;
 | 
				
			||||||
            color: #595959;
 | 
					            color: #595959;
 | 
				
			||||||
@ -160,38 +153,28 @@
 | 
				
			|||||||
            width: 160px;
 | 
					            width: 160px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .ship-user-phone {
 | 
					        /* -- Billing -- */
 | 
				
			||||||
            font-style: normal;
 | 
					
 | 
				
			||||||
            font-weight: normal;
 | 
					        .billing-address-container {
 | 
				
			||||||
            font-size: 10px;
 | 
					            float: left;
 | 
				
			||||||
            line-height: 15px;
 | 
					 | 
				
			||||||
            color: #595959;
 | 
					 | 
				
			||||||
            margin: 0px;
 | 
					 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
         /* -------------------------- */
 | 
					        .billing-address-label {
 | 
				
			||||||
        /* billing style */
 | 
					 | 
				
			||||||
        .bill-to {
 | 
					 | 
				
			||||||
            padding-top: 5px;
 | 
					            padding-top: 5px;
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 12px;
 | 
					            font-size: 12px;
 | 
				
			||||||
            line-height: 18px;
 | 
					            line-height: 18px;
 | 
				
			||||||
            margin-bottom: 0px;
 | 
					            margin-bottom: 0px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .bill-user-name {
 | 
					        .billing-address-name {
 | 
				
			||||||
            padding: 0px;
 | 
					            padding: 0px;
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 15px;
 | 
					            font-size: 15px;
 | 
				
			||||||
            line-height: 22px;
 | 
					            line-height: 22px;
 | 
				
			||||||
            margin: 0px;
 | 
					            margin: 0px;
 | 
				
			||||||
 | 
					            max-width: 160px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .bill-user-address {
 | 
					        .billing-address {
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 10px;
 | 
					            font-size: 10px;
 | 
				
			||||||
            line-height: 15px;
 | 
					            line-height: 15px;
 | 
				
			||||||
            color: #595959;
 | 
					            color: #595959;
 | 
				
			||||||
@ -199,187 +182,131 @@
 | 
				
			|||||||
            width: 160px;
 | 
					            width: 160px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .bill-user-phone {
 | 
					        /* -- Estimate Details -- */
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 10px;
 | 
					 | 
				
			||||||
            line-height: 15px;
 | 
					 | 
				
			||||||
            color: #595959;
 | 
					 | 
				
			||||||
            margin: 0px;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .estimate-details-container {
 | 
				
			||||||
        .job-add {
 | 
					 | 
				
			||||||
            display: block;
 | 
					            display: block;
 | 
				
			||||||
            float: right;
 | 
					            float: right;
 | 
				
			||||||
            padding: 20px 30px 0 0;
 | 
					            padding: 20px 30px 0 0;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        .amount-due {
 | 
					 | 
				
			||||||
            background-color: #f2f2f2;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .textRight {
 | 
					        .attribute-label {
 | 
				
			||||||
            text-align: right;
 | 
					            font-size: 12px;
 | 
				
			||||||
        }
 | 
					            line-height: 18px;
 | 
				
			||||||
 | 
					 | 
				
			||||||
        .textLeft {
 | 
					 | 
				
			||||||
            text-align: left;
 | 
					            text-align: left;
 | 
				
			||||||
 | 
					            color: #55547A
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .textStyle1 {
 | 
					        .attribute-value {
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 12px;
 | 
					 | 
				
			||||||
            line-height: 18px;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        .textStyle2 {
 | 
					 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 12px;
 | 
					            font-size: 12px;
 | 
				
			||||||
            line-height: 18px;
 | 
					            line-height: 18px;
 | 
				
			||||||
            text-align: right;
 | 
					            text-align: right;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        .main-table-header td {
 | 
					
 | 
				
			||||||
            padding: 10px;
 | 
					        /* -- Items Table -- */
 | 
				
			||||||
        }
 | 
					
 | 
				
			||||||
        .main-table-header {
 | 
					        .items-table {
 | 
				
			||||||
            border-bottom: 1px solid red;
 | 
					            padding: 30px 30px 10px 30px;
 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        tr.main-table-header th {
 | 
					 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: 600;
 | 
					 | 
				
			||||||
            font-size: 12px;
 | 
					 | 
				
			||||||
            line-height: 18px;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        tr.item-details td {
 | 
					 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 12px;
 | 
					 | 
				
			||||||
            line-height: 18px;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        .table2 {
 | 
					 | 
				
			||||||
            padding: 0px 30px 10px 30px;
 | 
					 | 
				
			||||||
            page-break-before: avoid;
 | 
					            page-break-before: avoid;
 | 
				
			||||||
            page-break-after: auto;
 | 
					            page-break-after: auto;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .table2 hr {
 | 
					        .items-table hr {
 | 
				
			||||||
            height:0.1px;
 | 
					            height: 0.1px;
 | 
				
			||||||
 | 
					            margin: 0 30px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .ItemTableHeader {
 | 
					        .item-table-heading {
 | 
				
			||||||
            font-size: 13.5;
 | 
					            font-size: 13.5;
 | 
				
			||||||
            text-align: center;
 | 
					            text-align: center;
 | 
				
			||||||
            color: rgba(0, 0, 0, 0.85);
 | 
					            color: rgba(0, 0, 0, 0.85);
 | 
				
			||||||
            padding: 5px;
 | 
					            padding: 5px;
 | 
				
			||||||
 | 
					            padding-bottom: 10px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .items {
 | 
					        tr.item-table-heading-row th {
 | 
				
			||||||
 | 
					            border-bottom: 0.620315px solid #E8E8E8;
 | 
				
			||||||
 | 
					            font-size: 12px;
 | 
				
			||||||
 | 
					            line-height: 18px;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .item-table-heading-row {
 | 
				
			||||||
 | 
					            margin-bottom: 10px;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        tr.item-row td {
 | 
				
			||||||
 | 
					            font-size: 12px;
 | 
				
			||||||
 | 
					            line-height: 18px;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .item-cell {
 | 
				
			||||||
            font-size: 13;
 | 
					            font-size: 13;
 | 
				
			||||||
            color: rgba(0, 0, 0, 0.6);
 | 
					            color: #040405;
 | 
				
			||||||
            text-align: center;
 | 
					            text-align: center;
 | 
				
			||||||
            padding: 5px;
 | 
					            padding: 5px;
 | 
				
			||||||
 | 
					            padding-top: 10px;
 | 
				
			||||||
 | 
					            border-color: #d9d9d9;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .note-header {
 | 
					        .item-description {
 | 
				
			||||||
            font-size: 13;
 | 
					            color: #595959;
 | 
				
			||||||
            color: rgba(0, 0, 0, 0.6);
 | 
					            font-size: 9px;
 | 
				
			||||||
 | 
					            line-height: 12px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .note-text {
 | 
					        .item-cell-table-hr {
 | 
				
			||||||
            font-size: 10;
 | 
					            margin: 0 30px 0 30px;
 | 
				
			||||||
            color: rgba(0, 0, 0, 0.6);
 | 
					 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .padd8 {
 | 
					        /* -- Total Display Table -- */
 | 
				
			||||||
            padding-top: 8px;
 | 
					
 | 
				
			||||||
            padding-bottom: 8px;
 | 
					        .total-display-container {
 | 
				
			||||||
 | 
					            padding: 0 25px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .padd2 {
 | 
					        .total-display-table {
 | 
				
			||||||
 | 
					            box-sizing: border-box;
 | 
				
			||||||
 | 
					            page-break-inside: avoid;
 | 
				
			||||||
 | 
					            page-break-before: auto;
 | 
				
			||||||
 | 
					            page-break-after: auto;
 | 
				
			||||||
 | 
					            margin-left: 500px;
 | 
				
			||||||
 | 
					            margin-top: 20px;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .total-table-attribute-label {
 | 
				
			||||||
 | 
					            font-size: 12px;
 | 
				
			||||||
 | 
					            color: #55547A;
 | 
				
			||||||
 | 
					            text-align: left;
 | 
				
			||||||
 | 
					            padding-left: 10px;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .total-table-attribute-value {
 | 
				
			||||||
 | 
					            font-weight: bold;
 | 
				
			||||||
 | 
					            text-align: right;
 | 
				
			||||||
 | 
					            font-size: 12px;
 | 
				
			||||||
 | 
					            color: #040405;
 | 
				
			||||||
 | 
					            padding-right: 10px;
 | 
				
			||||||
            padding-top: 2px;
 | 
					            padding-top: 2px;
 | 
				
			||||||
            padding-bottom: 2px;
 | 
					            padding-bottom: 2px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .table3 {
 | 
					        .total-border-left {
 | 
				
			||||||
             border: 1px solid #EAF1FB;
 | 
					            border: 1px solid #E8E8E8 !important;
 | 
				
			||||||
             border-top: none;
 | 
					            border-right: 0px !important;
 | 
				
			||||||
            box-sizing: border-box;
 | 
					            padding-top: 0px;
 | 
				
			||||||
            width: 630px;
 | 
					            padding: 8px !important;
 | 
				
			||||||
            page-break-inside: avoid;
 | 
					 | 
				
			||||||
            page-break-before: auto;
 | 
					 | 
				
			||||||
            page-break-after: auto;
 | 
					 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        td.estimate-total1 {
 | 
					        .total-border-right {
 | 
				
			||||||
            text-align:left;
 | 
					            border: 1px solid #E8E8E8 !important;
 | 
				
			||||||
            padding: 15px 0 15px 10px;
 | 
					            border-left: 0px !important;
 | 
				
			||||||
            font-size:12px;
 | 
					            padding-top: 0px;
 | 
				
			||||||
            line-height: 18px;
 | 
					            padding: 8px !important;
 | 
				
			||||||
            color: #55547A;
 | 
					 | 
				
			||||||
            border-bottom:1px solid #E8E8E8;
 | 
					 | 
				
			||||||
            border-top:1px solid #E8E8E8;
 | 
					 | 
				
			||||||
            border-left:1px solid #E8E8E8;
 | 
					 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        td.estimate-total2 {
 | 
					        /* -- Notes -- */
 | 
				
			||||||
            font-weight: 500;
 | 
					 | 
				
			||||||
            text-align: right;
 | 
					 | 
				
			||||||
            font-size:12px;
 | 
					 | 
				
			||||||
            line-height: 18px;
 | 
					 | 
				
			||||||
            padding: 15px 10px 15px 0;
 | 
					 | 
				
			||||||
            color: #5851DB;
 | 
					 | 
				
			||||||
            border-bottom:1px solid #E8E8E8;
 | 
					 | 
				
			||||||
            border-top:1px solid #E8E8E8;
 | 
					 | 
				
			||||||
            border-right:1px solid #E8E8E8;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        .inv-item {
 | 
					 | 
				
			||||||
            border-color: #d9d9d9;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        .no-border {
 | 
					 | 
				
			||||||
            border: none;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        .desc {
 | 
					 | 
				
			||||||
            font-weight: 100;
 | 
					 | 
				
			||||||
            text-align: justify;
 | 
					 | 
				
			||||||
            font-size: 10px;
 | 
					 | 
				
			||||||
            margin-bottom: 15px;
 | 
					 | 
				
			||||||
            margin-top:7px;
 | 
					 | 
				
			||||||
            color:rgba(0, 0, 0, 0.85);
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        .company-details h1 {
 | 
					 | 
				
			||||||
            margin:0;
 | 
					 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: bold;
 | 
					 | 
				
			||||||
            font-size: 15px;
 | 
					 | 
				
			||||||
            line-height: 22px;
 | 
					 | 
				
			||||||
            letter-spacing: 0.05em;
 | 
					 | 
				
			||||||
            text-align: left;
 | 
					 | 
				
			||||||
            max-width: 220px;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        .company-details h4 {
 | 
					 | 
				
			||||||
            margin:0;
 | 
					 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: 100;
 | 
					 | 
				
			||||||
            font-size: 18px;
 | 
					 | 
				
			||||||
            line-height: 25px;
 | 
					 | 
				
			||||||
            text-align: right;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        .company-details h3 {
 | 
					 | 
				
			||||||
             margin-bottom:1px;
 | 
					 | 
				
			||||||
             margin-top:0;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        tr.total td {
 | 
					 | 
				
			||||||
            border-bottom:1px solid #E8E8E8;
 | 
					 | 
				
			||||||
            border-top:1px solid #E8E8E8;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .notes {
 | 
					        .notes {
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: 300;
 | 
					 | 
				
			||||||
            font-size: 12px;
 | 
					            font-size: 12px;
 | 
				
			||||||
            color: #595959;
 | 
					            color: #595959;
 | 
				
			||||||
            margin-top: 15px;
 | 
					            margin-top: 15px;
 | 
				
			||||||
@ -390,8 +317,6 @@
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .notes-label {
 | 
					        .notes-label {
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 15px;
 | 
					            font-size: 15px;
 | 
				
			||||||
            line-height: 22px;
 | 
					            line-height: 22px;
 | 
				
			||||||
            letter-spacing: 0.05em;
 | 
					            letter-spacing: 0.05em;
 | 
				
			||||||
@ -401,60 +326,116 @@
 | 
				
			|||||||
            padding-bottom: 10px;
 | 
					            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>
 | 
					    </style>
 | 
				
			||||||
</head>
 | 
					</head>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<body>
 | 
					<body>
 | 
				
			||||||
    <div class="header-table">
 | 
					    <div class="header-container">
 | 
				
			||||||
        <table width="100%">
 | 
					        <table width="100%">
 | 
				
			||||||
            <tr>
 | 
					            <tr>
 | 
				
			||||||
                @if($logo)
 | 
					                @if($logo)
 | 
				
			||||||
                    <td class="header-left">
 | 
					                <td class="header-section-left">
 | 
				
			||||||
                    <img class="header-logo" src="{{ $logo }}" alt="Company Logo">
 | 
					                    <img class="header-logo" src="{{ $logo }}" alt="Company Logo">
 | 
				
			||||||
                    @else
 | 
					                    @else
 | 
				
			||||||
                    @if($estimate->user->company)
 | 
					                    @if($estimate->user->company)
 | 
				
			||||||
                    <td class="header-left" style="padding-top:0px;">
 | 
					                <td class="header-section-left" style="padding-top:0px;">
 | 
				
			||||||
                    <h1 class="header-logo"> {{$estimate->user->company->name}} </h1>
 | 
					                    <h1 class="header-logo"> {{$estimate->user->company->name}} </h1>
 | 
				
			||||||
                    @endif
 | 
					                    @endif
 | 
				
			||||||
                    @endif
 | 
					                    @endif
 | 
				
			||||||
                </td>
 | 
					                </td>
 | 
				
			||||||
                <td class="header-right company-details">
 | 
					                <td class="header-section-right company-address-container">
 | 
				
			||||||
                    @include('app.pdf.estimate.partials.company-address')
 | 
					                    @include('app.pdf.estimate.partials.company-address')
 | 
				
			||||||
                </td>
 | 
					                </td>
 | 
				
			||||||
            </tr>
 | 
					            </tr>
 | 
				
			||||||
        </table>
 | 
					        </table>
 | 
				
			||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    <hr class="header-line">
 | 
					    <hr class="header-bottom-divider">
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    <div class="wrapper">
 | 
					    <div class="wrapper">
 | 
				
			||||||
        <div class="address">
 | 
					        <div class="main-content">
 | 
				
			||||||
            <div class="bill-add">
 | 
					            <div class="customer-address-container">
 | 
				
			||||||
                <div style="float:left;">
 | 
					                <div class="billing-address-container">
 | 
				
			||||||
                    @include('app.pdf.estimate.partials.billing-address')
 | 
					                    @include('app.pdf.estimate.partials.billing-address')
 | 
				
			||||||
                </div>
 | 
					                </div>
 | 
				
			||||||
                @if($estimate->user->billingaddress)
 | 
					                @if($estimate->user->billingaddress)
 | 
				
			||||||
                    <div style="float:right;">
 | 
					                <div class="shipping-address-container">
 | 
				
			||||||
                    @else
 | 
					                    @else
 | 
				
			||||||
                    <div style="float:left;">
 | 
					                    <div class="shipping-address-container--left">
 | 
				
			||||||
                        @endif
 | 
					                        @endif
 | 
				
			||||||
                        @include('app.pdf.estimate.partials.shipping-address')
 | 
					                        @include('app.pdf.estimate.partials.shipping-address')
 | 
				
			||||||
                    </div>
 | 
					                    </div>
 | 
				
			||||||
                    <div style="clear: both;"></div>
 | 
					                    <div style="clear: both;"></div>
 | 
				
			||||||
                </div>
 | 
					                </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            <div class="job-add">
 | 
					                <div class="estimate-details-container">
 | 
				
			||||||
                    <table>
 | 
					                    <table>
 | 
				
			||||||
                        <tr>
 | 
					                        <tr>
 | 
				
			||||||
                        <td class="textStyle1" style="text-align: left; color: #55547A">Estimate Number</td>
 | 
					                            <td class="attribute-label">Estimate Number</td>
 | 
				
			||||||
                        <td class="textStyle2">  {{$estimate->estimate_number}}</td>
 | 
					                            <td class="attribute-value">  {{$estimate->estimate_number}}</td>
 | 
				
			||||||
                        </tr>
 | 
					                        </tr>
 | 
				
			||||||
                        <tr>
 | 
					                        <tr>
 | 
				
			||||||
                        <td class="textStyle1" style="text-align: left; color: #55547A">Estimate Date </td>
 | 
					                            <td class="attribute-label">Estimate Date </td>
 | 
				
			||||||
                        <td class="textStyle2">  {{$estimate->formattedEstimateDate}}</td>
 | 
					                            <td class="attribute-value">  {{$estimate->formattedEstimateDate}}</td>
 | 
				
			||||||
                        </tr>
 | 
					                        </tr>
 | 
				
			||||||
                        <tr>
 | 
					                        <tr>
 | 
				
			||||||
                        <td class="textStyle1" style="text-align: left; color: #55547A">Expiry Date</td>
 | 
					                            <td class="attribute-label">Expiry Date</td>
 | 
				
			||||||
                        <td class="textStyle2">  {{$estimate->formattedExpiryDate}}</td>
 | 
					                            <td class="attribute-value">  {{$estimate->formattedExpiryDate}}</td>
 | 
				
			||||||
                        </tr>
 | 
					                        </tr>
 | 
				
			||||||
                    </table>
 | 
					                    </table>
 | 
				
			||||||
                </div>
 | 
					                </div>
 | 
				
			||||||
@ -463,5 +444,7 @@
 | 
				
			|||||||
            @include('app.pdf.estimate.partials.table')
 | 
					            @include('app.pdf.estimate.partials.table')
 | 
				
			||||||
            @include('app.pdf.estimate.partials.notes')
 | 
					            @include('app.pdf.estimate.partials.notes')
 | 
				
			||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
 | 
					    </div>
 | 
				
			||||||
</body>
 | 
					</body>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
</html>
 | 
					</html>
 | 
				
			||||||
 | 
				
			|||||||
@ -1,11 +1,11 @@
 | 
				
			|||||||
@if($estimate->user->billingaddress)
 | 
					@if($estimate->user->billingaddress)
 | 
				
			||||||
    <p class="bill-to">Bill To,</p>
 | 
					    <p class="billing-address-label">Bill To,</p>
 | 
				
			||||||
    @if($estimate->user->billingaddress->name)
 | 
					    @if($estimate->user->billingaddress->name)
 | 
				
			||||||
        <p class="bill-user-name">
 | 
					        <p class="billing-address-name">
 | 
				
			||||||
            {{$estimate->user->billingaddress->name}}
 | 
					            {{$estimate->user->billingaddress->name}}
 | 
				
			||||||
        </p>
 | 
					        </p>
 | 
				
			||||||
    @endif
 | 
					    @endif
 | 
				
			||||||
    <p class="bill-user-address">
 | 
					    <p class="billing-address">
 | 
				
			||||||
        @if($estimate->user->billingaddress->address_street_1)
 | 
					        @if($estimate->user->billingaddress->address_street_1)
 | 
				
			||||||
            {!! nl2br(htmlspecialchars($estimate->user->billingaddress->address_street_1)) !!}<br>
 | 
					            {!! nl2br(htmlspecialchars($estimate->user->billingaddress->address_street_1)) !!}<br>
 | 
				
			||||||
        @endif
 | 
					        @endif
 | 
				
			||||||
@ -31,7 +31,7 @@
 | 
				
			|||||||
        @endif
 | 
					        @endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        @if($estimate->user->billingaddress->phone)
 | 
					        @if($estimate->user->billingaddress->phone)
 | 
				
			||||||
            <p class="bill-user-phone">
 | 
					            <p class="billing-address">
 | 
				
			||||||
                Phone :{{$estimate->user->billingaddress->phone}}
 | 
					                Phone :{{$estimate->user->billingaddress->phone}}
 | 
				
			||||||
            </p>
 | 
					            </p>
 | 
				
			||||||
        @endif
 | 
					        @endif
 | 
				
			||||||
 | 
				
			|||||||
@ -3,7 +3,7 @@
 | 
				
			|||||||
@endif
 | 
					@endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@if($company_address)
 | 
					@if($company_address)
 | 
				
			||||||
    <p class="company-add">
 | 
					    <p class="company-address">
 | 
				
			||||||
        @if($company_address->addresses[0]['address_street_1'])
 | 
					        @if($company_address->addresses[0]['address_street_1'])
 | 
				
			||||||
            {!! nl2br(htmlspecialchars($company_address->addresses[0]['address_street_1'])) !!} <br>
 | 
					            {!! nl2br(htmlspecialchars($company_address->addresses[0]['address_street_1'])) !!} <br>
 | 
				
			||||||
        @endif
 | 
					        @endif
 | 
				
			||||||
 | 
				
			|||||||
@ -1,11 +1,11 @@
 | 
				
			|||||||
@if($estimate->user->shippingaddress)
 | 
					@if($estimate->user->shippingaddress)
 | 
				
			||||||
    <p class="ship-to">Ship To,</p>
 | 
					    <p class="shipping-address-label">Ship To,</p>
 | 
				
			||||||
    @if($estimate->user->shippingaddress->name)
 | 
					    @if($estimate->user->shippingaddress->name)
 | 
				
			||||||
        <p class="ship-user-name">
 | 
					        <p class="shipping-address-name">
 | 
				
			||||||
            {{$estimate->user->shippingaddress->name}}
 | 
					            {{$estimate->user->shippingaddress->name}}
 | 
				
			||||||
        </p>
 | 
					        </p>
 | 
				
			||||||
    @endif
 | 
					    @endif
 | 
				
			||||||
    <p class="ship-user-address">
 | 
					    <p class="shipping-address">
 | 
				
			||||||
        @if($estimate->user->shippingaddress->address_street_1)
 | 
					        @if($estimate->user->shippingaddress->address_street_1)
 | 
				
			||||||
            {!! nl2br(htmlspecialchars($estimate->user->shippingaddress->address_street_1)) !!}<br>
 | 
					            {!! nl2br(htmlspecialchars($estimate->user->shippingaddress->address_street_1)) !!}<br>
 | 
				
			||||||
        @endif
 | 
					        @endif
 | 
				
			||||||
@ -30,8 +30,8 @@
 | 
				
			|||||||
            {{$estimate->user->shippingaddress->country->name}}<br>
 | 
					            {{$estimate->user->shippingaddress->country->name}}<br>
 | 
				
			||||||
        @endif
 | 
					        @endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        @if($estimate->user->phone)
 | 
					        @if($estimate->user->shippingAddress->phone)
 | 
				
			||||||
            <p class="ship-user-phone">
 | 
					            <p class="shipping-address">
 | 
				
			||||||
                Phone :{{$estimate->user->shippingaddress->phone}}
 | 
					                Phone :{{$estimate->user->shippingaddress->phone}}
 | 
				
			||||||
            </p>
 | 
					            </p>
 | 
				
			||||||
        @endif
 | 
					        @endif
 | 
				
			||||||
 | 
				
			|||||||
@ -1,50 +1,49 @@
 | 
				
			|||||||
<table width="100%" class="table2" cellspacing="0" border="0">
 | 
					<table width="100%" class="items-table" cellspacing="0" border="0">
 | 
				
			||||||
    <tr class="main-table-header">
 | 
					    <tr class="item-table-heading-row">
 | 
				
			||||||
        <th width="2%" class="ItemTableHeader" style="text-align: right; color: #55547A; padding-right: 20px">#</th>
 | 
					        <th width="2%" class="item-table-heading text-right pr-20">#</th>
 | 
				
			||||||
        <th width="40%" class="ItemTableHeader" style="text-align: left; color: #55547A; padding-left: 0px">Items</th>
 | 
					        <th width="40%" class="item-table-heading text-left pl-0">Items</th>
 | 
				
			||||||
        <th class="ItemTableHeader" style="text-align: right; color: #55547A; padding-right: 20px">Quantity</th>
 | 
					        <th class="item-table-heading text-right pr-20">Quantity</th>
 | 
				
			||||||
        <th class="ItemTableHeader" style="text-align: right; color: #55547A; padding-right: 20px">Price</th>
 | 
					        <th class="item-table-heading text-right pr-20">Price</th>
 | 
				
			||||||
        @if($estimate->discount_per_item === 'YES')
 | 
					        @if($estimate->discount_per_item === 'YES')
 | 
				
			||||||
        <th class="ItemTableHeader" style="text-align: right; color: #55547A; padding-left: 10px">Discount</th>
 | 
					        <th class="item-table-heading text-right pl-10">Discount</th>
 | 
				
			||||||
        @endif
 | 
					        @endif
 | 
				
			||||||
        <th class="ItemTableHeader" style="text-align: right; color: #55547A;">Amount</th>
 | 
					        <th class="item-table-heading text-right">Amount </th>
 | 
				
			||||||
    </tr>
 | 
					    </tr>
 | 
				
			||||||
    @php
 | 
					    @php
 | 
				
			||||||
        $index = 1
 | 
					        $index = 1
 | 
				
			||||||
    @endphp
 | 
					    @endphp
 | 
				
			||||||
    @foreach ($estimate->items as $item)
 | 
					    @foreach ($estimate->items as $item)
 | 
				
			||||||
        <tr class="item-details">
 | 
					        <tr class="item-row">
 | 
				
			||||||
            <td
 | 
					            <td
 | 
				
			||||||
                class="inv-item items"
 | 
					                class="item-cell text-right pr-20"
 | 
				
			||||||
                style="text-align: right; color: #040405; padding-right: 20px; vertical-align: top;"
 | 
					                style="vertical-align: top;"
 | 
				
			||||||
            >
 | 
					            >
 | 
				
			||||||
                {{$index}}
 | 
					                {{$index}}
 | 
				
			||||||
            </td>
 | 
					            </td>
 | 
				
			||||||
            <td
 | 
					            <td
 | 
				
			||||||
                class="inv-item items"
 | 
					                class="item-cell text-left pl-0"
 | 
				
			||||||
                style="text-align: left; color: #040405;padding-left: 0px"
 | 
					 | 
				
			||||||
            >
 | 
					            >
 | 
				
			||||||
                <span>{{ $item->name }}</span><br>
 | 
					                <span>{{ $item->name }}</span><br>
 | 
				
			||||||
                <span
 | 
					                <span
 | 
				
			||||||
                    style="text-align: left; color: #595959; font-size: 9px; font-weight:300; line-height: 12px;"
 | 
					                    class="item-description"
 | 
				
			||||||
                >
 | 
					                >
 | 
				
			||||||
                    {!! nl2br(htmlspecialchars($item->description)) !!}
 | 
					                    {!! nl2br(htmlspecialchars($item->description)) !!}
 | 
				
			||||||
                </span>
 | 
					                </span>
 | 
				
			||||||
            </td>
 | 
					            </td>
 | 
				
			||||||
            <td
 | 
					            <td
 | 
				
			||||||
                class="inv-item items"
 | 
					                class="item-cell text-right pr-20"
 | 
				
			||||||
                style="text-align: right; color: #040405; padding-right: 20px"
 | 
					                style="vertical-align: top;"
 | 
				
			||||||
            >
 | 
					            >
 | 
				
			||||||
                {{$item->quantity}}
 | 
					                {{$item->quantity}}
 | 
				
			||||||
            </td>
 | 
					            </td>
 | 
				
			||||||
            <td
 | 
					            <td
 | 
				
			||||||
                class="inv-item items"
 | 
					                class="item-cell text-right pr-20"
 | 
				
			||||||
                style="text-align: right; color: #040405; padding-right: 20px"
 | 
					                style="vertical-align: top;"
 | 
				
			||||||
            >
 | 
					            >
 | 
				
			||||||
                {!! format_money_pdf($item->price, $estimate->user->currency) !!}
 | 
					                {!! format_money_pdf($item->price, $estimate->user->currency) !!}
 | 
				
			||||||
            </td>
 | 
					            </td>
 | 
				
			||||||
            @if($estimate->discount_per_item === 'YES')
 | 
					            @if($estimate->discount_per_item === 'YES')
 | 
				
			||||||
                <td class="inv-item items" style="text-align: right; color: #040405; padding-left: 10px">
 | 
					                <td class="item-cell text-right pl-10" style="vertical-align: top;">
 | 
				
			||||||
                    @if($item->discount_type === 'fixed')
 | 
					                    @if($item->discount_type === 'fixed')
 | 
				
			||||||
                        {!! format_money_pdf($item->discount_val, $estimate->user->currency) !!}
 | 
					                        {!! format_money_pdf($item->discount_val, $estimate->user->currency) !!}
 | 
				
			||||||
                    @endif
 | 
					                    @endif
 | 
				
			||||||
@ -53,7 +52,7 @@
 | 
				
			|||||||
                    @endif
 | 
					                    @endif
 | 
				
			||||||
                </td>
 | 
					                </td>
 | 
				
			||||||
            @endif
 | 
					            @endif
 | 
				
			||||||
            <td class="inv-item items" style="text-align: right; color: #040405;">
 | 
					            <td class="item-cell text-right" style="vertical-align: top;">
 | 
				
			||||||
                {!! format_money_pdf($item->total, $estimate->user->currency) !!}
 | 
					                {!! format_money_pdf($item->total, $estimate->user->currency) !!}
 | 
				
			||||||
            </td>
 | 
					            </td>
 | 
				
			||||||
        </tr>
 | 
					        </tr>
 | 
				
			||||||
@ -63,22 +62,22 @@
 | 
				
			|||||||
    @endforeach
 | 
					    @endforeach
 | 
				
			||||||
</table>
 | 
					</table>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<hr class="items-table-hr">
 | 
					<hr class="item-cell-table-hr">
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<table width="100%" cellspacing="0px" style="margin-left:420px;margin-top: 10px" border="0" class="table3 @if(count($estimate->items) > 12) page-break @endif">
 | 
					<div class="total-display-container">
 | 
				
			||||||
 | 
					    <table width="100%" cellspacing="0px" border="0" class="total-display-table @if(count($estimate->items) > 12) page-break @endif">
 | 
				
			||||||
        <tr>
 | 
					        <tr>
 | 
				
			||||||
        <td class="no-borde" style="color: #55547A; padding-left:10px;  font-size:12px;">Subtotal</td>
 | 
					            <td class="border-0 total-table-attribute-label">Subtotal</td>
 | 
				
			||||||
        <td class="no-border items"
 | 
					            <td class="border-0 item-cell total-table-attribute-value ">{!! format_money_pdf($estimate->sub_total, $estimate->user->currency) !!}</td>
 | 
				
			||||||
            style="padding-right:10px; text-align: right;  font-size:12px; color: #040405; font-weight: 500;">{!! format_money_pdf($estimate->sub_total, $estimate->user->currency) !!}</td>
 | 
					 | 
				
			||||||
        </tr>
 | 
					        </tr>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        @if ($estimate->tax_per_item === 'YES')
 | 
					        @if ($estimate->tax_per_item === 'YES')
 | 
				
			||||||
            @for ($i = 0; $i < count($labels); $i++)
 | 
					            @for ($i = 0; $i < count($labels); $i++)
 | 
				
			||||||
                <tr>
 | 
					                <tr>
 | 
				
			||||||
                <td class="no-border" style="padding-left:10px; text-align:left; font-size:12px;  color: #55547A;">
 | 
					                    <td class="border-0 total-table-attribute-label">
 | 
				
			||||||
                        {{$labels[$i]}}
 | 
					                        {{$labels[$i]}}
 | 
				
			||||||
                    </td>
 | 
					                    </td>
 | 
				
			||||||
                <td class="no-border items padd2" style="padding-right:10px; font-weight: 500; text-align: right; font-size:12px;  color: #040405">
 | 
					                    <td class="border-0 item-cell  total-table-attribute-value">
 | 
				
			||||||
                        {!! format_money_pdf($taxes[$i], $estimate->user->currency) !!}
 | 
					                        {!! format_money_pdf($taxes[$i], $estimate->user->currency) !!}
 | 
				
			||||||
                    </td>
 | 
					                    </td>
 | 
				
			||||||
                </tr>
 | 
					                </tr>
 | 
				
			||||||
@ -86,10 +85,10 @@
 | 
				
			|||||||
        @else
 | 
					        @else
 | 
				
			||||||
            @foreach ($estimate->taxes as $tax)
 | 
					            @foreach ($estimate->taxes as $tax)
 | 
				
			||||||
                <tr>
 | 
					                <tr>
 | 
				
			||||||
                <td class="no-border" style="padding-left:10px; text-align:left; font-size:12px;  color: #55547A;">
 | 
					                    <td class="border-0 total-table-attribute-label">
 | 
				
			||||||
                        {{$tax->name.' ('.$tax->percent.'%)'}}
 | 
					                        {{$tax->name.' ('.$tax->percent.'%)'}}
 | 
				
			||||||
                    </td>
 | 
					                    </td>
 | 
				
			||||||
                <td class="no-border items padd2" style="padding-right:10px; font-weight: 500; text-align: right; font-size:12px;  color: #040405">
 | 
					                    <td class="border-0 item-cell total-table-attribute-value" >
 | 
				
			||||||
                        {!! format_money_pdf($tax->amount, $estimate->user->currency) !!}
 | 
					                        {!! format_money_pdf($tax->amount, $estimate->user->currency) !!}
 | 
				
			||||||
                    </td>
 | 
					                    </td>
 | 
				
			||||||
                </tr>
 | 
					                </tr>
 | 
				
			||||||
@ -98,7 +97,7 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        @if ($estimate->discount_per_item === 'NO')
 | 
					        @if ($estimate->discount_per_item === 'NO')
 | 
				
			||||||
            <tr>
 | 
					            <tr>
 | 
				
			||||||
            <td class="no-border" style="padding-left:10px; text-align:left; font-size:12px; color: #55547A;">
 | 
					                <td class="border-0 total-table-attribute-label pl-10">
 | 
				
			||||||
                    @if($estimate->discount_type === 'fixed')
 | 
					                    @if($estimate->discount_type === 'fixed')
 | 
				
			||||||
                        Discount
 | 
					                        Discount
 | 
				
			||||||
                    @endif
 | 
					                    @endif
 | 
				
			||||||
@ -106,7 +105,7 @@
 | 
				
			|||||||
                        Discount ({{$estimate->discount}}%)
 | 
					                        Discount ({{$estimate->discount}}%)
 | 
				
			||||||
                    @endif
 | 
					                    @endif
 | 
				
			||||||
                </td>
 | 
					                </td>
 | 
				
			||||||
            <td class="no-border items padd2" style="padding-right:10px; font-weight: 500; text-align: right; font-size:12px;  color: #040405">
 | 
					                <td class="border-0 item-cell total-table-attribute-value text-right">
 | 
				
			||||||
                    @if($estimate->discount_type === 'fixed')
 | 
					                    @if($estimate->discount_type === 'fixed')
 | 
				
			||||||
                        {!! format_money_pdf($estimate->discount_val, $estimate->user->currency) !!}
 | 
					                        {!! format_money_pdf($estimate->discount_val, $estimate->user->currency) !!}
 | 
				
			||||||
                    @endif
 | 
					                    @endif
 | 
				
			||||||
@ -117,20 +116,14 @@
 | 
				
			|||||||
            </tr>
 | 
					            </tr>
 | 
				
			||||||
        @endif
 | 
					        @endif
 | 
				
			||||||
        <tr>
 | 
					        <tr>
 | 
				
			||||||
        <td style="padding:3px 0px"></td>
 | 
					            <td class="py-3"></td>
 | 
				
			||||||
        <td style="padding:3px 0px"></td>
 | 
					            <td class="py-3"></td>
 | 
				
			||||||
        </tr>
 | 
					        </tr>
 | 
				
			||||||
        <tr>
 | 
					        <tr>
 | 
				
			||||||
        <td class="no-border total-border-left"
 | 
					            <td class="border-0 total-border-left total-table-attribute-label">Total</td>
 | 
				
			||||||
            style="padding-left:10px; padding-bottom:10px; text-align:left; padding-top:20px; font-size:12px;  color: #55547A;"
 | 
					            <td class="border-0 total-border-right item-cell py-8 total-table-attribute-value text-primary">
 | 
				
			||||||
        >
 | 
					 | 
				
			||||||
            <label class="total-bottom"> Total </label>
 | 
					 | 
				
			||||||
        </td>
 | 
					 | 
				
			||||||
        <td
 | 
					 | 
				
			||||||
            class="no-border total-border-right items padd8"
 | 
					 | 
				
			||||||
            style="padding-right:10px; font-weight: 500; text-align: right; font-size:12px;  padding-top:20px; color: #5851DB"
 | 
					 | 
				
			||||||
        >
 | 
					 | 
				
			||||||
                {!! format_money_pdf($estimate->total, $estimate->user->currency)!!}
 | 
					                {!! format_money_pdf($estimate->total, $estimate->user->currency)!!}
 | 
				
			||||||
            </td>
 | 
					            </td>
 | 
				
			||||||
        </tr>
 | 
					        </tr>
 | 
				
			||||||
</table>
 | 
					    </table>
 | 
				
			||||||
 | 
					</div>
 | 
				
			||||||
 | 
				
			|||||||
@ -1,10 +1,12 @@
 | 
				
			|||||||
<!DOCTYPE html>
 | 
					<!DOCTYPE html>
 | 
				
			||||||
<html>
 | 
					<html>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<head>
 | 
					<head>
 | 
				
			||||||
    <title>Invoice</title>
 | 
					    <title>Invoice</title>
 | 
				
			||||||
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
 | 
					    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    <style type="text/css">
 | 
					    <style type="text/css">
 | 
				
			||||||
 | 
					        /* -- Base -- */
 | 
				
			||||||
        body {
 | 
					        body {
 | 
				
			||||||
            font-family: "DejaVu Sans";
 | 
					            font-family: "DejaVu Sans";
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
@ -15,29 +17,27 @@
 | 
				
			|||||||
            margin-top: 50px;
 | 
					            margin-top: 50px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        table {
 | 
					        .text-center {
 | 
				
			||||||
            border-collapse: collapse;
 | 
					            text-align: center
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .header-line {
 | 
					        hr {
 | 
				
			||||||
            color:rgba(0, 0, 0, 0.2);
 | 
					            margin: 0 30px 0 30px;
 | 
				
			||||||
 | 
					            color: rgba(0, 0, 0, 0.2);
 | 
				
			||||||
 | 
					            border: 0.5px solid #EAF1FB;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        /* -- Header -- */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .header-bottom-divider {
 | 
				
			||||||
 | 
					            color: rgba(0, 0, 0, 0.2);
 | 
				
			||||||
            position: absolute;
 | 
					            position: absolute;
 | 
				
			||||||
            top: 90px;
 | 
					            top: 90px;
 | 
				
			||||||
            left: 0px;
 | 
					            left: 0px;
 | 
				
			||||||
            width: 100%;
 | 
					            width: 100%;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        hr {
 | 
					        .header-container {
 | 
				
			||||||
            margin: 0 30px 0 30px;
 | 
					 | 
				
			||||||
            color:rgba(0, 0, 0, 0.2);
 | 
					 | 
				
			||||||
            border: 0.5px solid #EAF1FB;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        .header-center {
 | 
					 | 
				
			||||||
            text-align: center
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        .header-table {
 | 
					 | 
				
			||||||
            position: absolute;
 | 
					            position: absolute;
 | 
				
			||||||
            width: 100%;
 | 
					            width: 100%;
 | 
				
			||||||
            height: 90px;
 | 
					            height: 90px;
 | 
				
			||||||
@ -52,122 +52,69 @@
 | 
				
			|||||||
            color: #817AE3;
 | 
					            color: #817AE3;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .inv-flex{
 | 
					 | 
				
			||||||
            display:flex;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        .inv-data{
 | 
					 | 
				
			||||||
            text-align:right;
 | 
					 | 
				
			||||||
            margin-right:120px;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        .inv-value{
 | 
					 | 
				
			||||||
            text-align:left;
 | 
					 | 
				
			||||||
            margin-left:160px;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        .header {
 | 
					        .header {
 | 
				
			||||||
            font-size: 20px;
 | 
					            font-size: 20px;
 | 
				
			||||||
            color: rgba(0, 0, 0, 0.7);
 | 
					            color: rgba(0, 0, 0, 0.7);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .TextColor1 {
 | 
					        .content-wrapper {
 | 
				
			||||||
            font-size: 16px;
 | 
					 | 
				
			||||||
            color: rgba(0, 0, 0, 0.5);
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        @page {
 | 
					 | 
				
			||||||
            margin-top: 60px !important;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        .wrapper {
 | 
					 | 
				
			||||||
            display: block;
 | 
					            display: block;
 | 
				
			||||||
            margin-top: 0px;
 | 
					            margin-top: 0px;
 | 
				
			||||||
            padding-top: 16px;
 | 
					            padding-top: 16px;
 | 
				
			||||||
            padding-bottom: 20px;
 | 
					            padding-bottom: 20px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .address {
 | 
					        .company-address-container {
 | 
				
			||||||
            /* display: inline-block; */
 | 
					 | 
				
			||||||
            padding-top: 30px
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        .company {
 | 
					 | 
				
			||||||
            float: left;
 | 
					 | 
				
			||||||
            padding-left: 30px;
 | 
					            padding-left: 30px;
 | 
				
			||||||
            font-weight: normal;
 | 
					            float: left;
 | 
				
			||||||
            display: inline;
 | 
					            width: 30%;
 | 
				
			||||||
            float:left;
 | 
					 | 
				
			||||||
            width:30%;
 | 
					 | 
				
			||||||
            text-transform: capitalize;
 | 
					            text-transform: capitalize;
 | 
				
			||||||
            margin-bottom: 2px;
 | 
					            margin-bottom: 2px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .company h1 {
 | 
					        .company-address-container h1 {
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 15px;
 | 
					            font-size: 15px;
 | 
				
			||||||
            line-height: 22px;
 | 
					            line-height: 22px;
 | 
				
			||||||
            letter-spacing: 0.05em;
 | 
					            letter-spacing: 0.05em;
 | 
				
			||||||
            margin-bottom: 0px;
 | 
					            margin-bottom: 0px;
 | 
				
			||||||
 | 
					            margin-top: 10px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .company-add {
 | 
					        .company-address {
 | 
				
			||||||
            margin-top: 2px;
 | 
					            margin-top: 2px;
 | 
				
			||||||
            text-align: left;
 | 
					            text-align: left;
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 12px;
 | 
					            font-size: 12px;
 | 
				
			||||||
            line-height: 15px;
 | 
					            line-height: 15px;
 | 
				
			||||||
            color: #595959;
 | 
					            color: #595959;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .job-add {
 | 
					        .invoice-details-container {
 | 
				
			||||||
            /* display: inline; */
 | 
					 | 
				
			||||||
            float: right;
 | 
					            float: right;
 | 
				
			||||||
            padding: 10px 30px 0 0;
 | 
					            padding: 10px 30px 0 0;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        .amount-due {
 | 
					 | 
				
			||||||
            background-color: #f2f2f2;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .textRight {
 | 
					        .attribute-label {
 | 
				
			||||||
            text-align: right;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        .textLeft {
 | 
					 | 
				
			||||||
            text-align: left;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        .textStyle1 {
 | 
					 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 12px;
 | 
					            font-size: 12px;
 | 
				
			||||||
            line-height: 18px;
 | 
					            line-height: 18px;
 | 
				
			||||||
            padding-right: 40px;
 | 
					            padding-right: 40px;
 | 
				
			||||||
 | 
					            text-align: left;
 | 
				
			||||||
 | 
					            color: #55547A;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .textStyle2 {
 | 
					        .attribute-value {
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 12px;
 | 
					            font-size: 12px;
 | 
				
			||||||
            line-height: 18px;
 | 
					            line-height: 18px;
 | 
				
			||||||
            text-align: right;
 | 
					            text-align: right;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        .bill-add {
 | 
					 | 
				
			||||||
            width:45%;
 | 
					 | 
				
			||||||
            padding: 0px 0 0 0px;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        /* -------------------------- */
 | 
					        /* -- Shipping -- */
 | 
				
			||||||
        /* shipping style */
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .ship-address-container {
 | 
					        .shipping-address-container {
 | 
				
			||||||
            float: right;
 | 
					            float: right;
 | 
				
			||||||
            padding-left: 30px;
 | 
					            padding-left: 30px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .ship-to {
 | 
					        .shipping-address-label {
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 12px;
 | 
					            font-size: 12px;
 | 
				
			||||||
            line-height: 18px;
 | 
					            line-height: 18px;
 | 
				
			||||||
            padding: 0px;
 | 
					            padding: 0px;
 | 
				
			||||||
@ -175,18 +122,15 @@
 | 
				
			|||||||
            margin-bottom: 0px;
 | 
					            margin-bottom: 0px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .ship-user-name {
 | 
					        .shipping-address-name {
 | 
				
			||||||
            max-width: 250px
 | 
					            max-width: 160px;
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 15px;
 | 
					            font-size: 15px;
 | 
				
			||||||
            line-height: 22px;
 | 
					            line-height: 22px;
 | 
				
			||||||
            padding: 0px;
 | 
					            padding: 0px;
 | 
				
			||||||
            margin: 0px;
 | 
					            margin: 0px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        .ship-user-address {
 | 
					
 | 
				
			||||||
            font-style: normal;
 | 
					        .shipping-address {
 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 10px;
 | 
					            font-size: 10px;
 | 
				
			||||||
            line-height: 15px;
 | 
					            line-height: 15px;
 | 
				
			||||||
            color: #595959;
 | 
					            color: #595959;
 | 
				
			||||||
@ -194,27 +138,15 @@
 | 
				
			|||||||
            margin: 0px;
 | 
					            margin: 0px;
 | 
				
			||||||
            width: 160px;
 | 
					            width: 160px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        .ship-user-phone {
 | 
					 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 10px;
 | 
					 | 
				
			||||||
            line-height: 15px;
 | 
					 | 
				
			||||||
            color: #595959;
 | 
					 | 
				
			||||||
            padding: 0px;
 | 
					 | 
				
			||||||
            margin: 0px;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        /* -------------------------- */
 | 
					        /* -- Billing -- */
 | 
				
			||||||
        /* billing style */
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .bill-address-container {
 | 
					        .billing-address-container {
 | 
				
			||||||
            float: left;
 | 
					            float: left;
 | 
				
			||||||
            padding-left: 30px;
 | 
					            padding-left: 30px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .bill-to {
 | 
					        .billing-address-label {
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 12px;
 | 
					            font-size: 12px;
 | 
				
			||||||
            line-height: 18px;
 | 
					            line-height: 18px;
 | 
				
			||||||
            padding: 0px;
 | 
					            padding: 0px;
 | 
				
			||||||
@ -222,19 +154,15 @@
 | 
				
			|||||||
            margin-bottom: 0px;
 | 
					            margin-bottom: 0px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .bill-user-name {
 | 
					        .billing-address-name {
 | 
				
			||||||
            max-width: 250px
 | 
					            max-width: 160px;
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 15px;
 | 
					            font-size: 15px;
 | 
				
			||||||
            line-height: 22px;
 | 
					            line-height: 22px;
 | 
				
			||||||
            padding: 0px;
 | 
					            padding: 0px;
 | 
				
			||||||
            margin: 0px;
 | 
					            margin: 0px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .bill-user-address {
 | 
					        .billing-address {
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 10px;
 | 
					            font-size: 10px;
 | 
				
			||||||
            line-height: 15px;
 | 
					            line-height: 15px;
 | 
				
			||||||
            color: #595959;
 | 
					            color: #595959;
 | 
				
			||||||
@ -243,115 +171,102 @@
 | 
				
			|||||||
            width: 160px;
 | 
					            width: 160px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .bill-user-phone {
 | 
					        /* -- Items Table -- */
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 10px;
 | 
					 | 
				
			||||||
            line-height: 15px;
 | 
					 | 
				
			||||||
            color: #595959;
 | 
					 | 
				
			||||||
            padding: 0px;
 | 
					 | 
				
			||||||
            margin: 0px;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .table2 {
 | 
					        .items-table {
 | 
				
			||||||
            margin-top: 35px;
 | 
					            margin-top: 35px;
 | 
				
			||||||
            padding: 0px 30px 10px 30px;
 | 
					            padding: 0px 30px 10px 30px;
 | 
				
			||||||
            page-break-before: avoid;
 | 
					            page-break-before: avoid;
 | 
				
			||||||
            page-break-after: auto;
 | 
					            page-break-after: auto;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .items-table hr {
 | 
				
			||||||
        .table2 hr {
 | 
					            height: 0.1px;
 | 
				
			||||||
            height:0.1px;
 | 
					 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .ItemTableHeader {
 | 
					        .item-table-heading {
 | 
				
			||||||
            font-size: 13.5;
 | 
					            font-size: 13.5;
 | 
				
			||||||
            text-align: center;
 | 
					            text-align: center;
 | 
				
			||||||
            color: rgba(0, 0, 0, 0.85);
 | 
					            color: rgba(0, 0, 0, 0.85);
 | 
				
			||||||
            padding: 5px;
 | 
					            padding: 5px;
 | 
				
			||||||
 | 
					            color: #55547A;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        tr.main-table-header th {
 | 
					        tr.item-table-heading-row th {
 | 
				
			||||||
            border-bottom: 0.620315px solid #E8E8E8;
 | 
					            border-bottom: 0.620315px solid #E8E8E8;
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 12px;
 | 
					            font-size: 12px;
 | 
				
			||||||
            line-height: 18px;
 | 
					            line-height: 18px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        tr.item-details td {
 | 
					        tr.item-row td {
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 12px;
 | 
					            font-size: 12px;
 | 
				
			||||||
            line-height: 18px;
 | 
					            line-height: 18px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .items {
 | 
					        .item-cell {
 | 
				
			||||||
            font-size: 13;
 | 
					            font-size: 13;
 | 
				
			||||||
            color: rgba(0, 0, 0, 0.6);
 | 
					 | 
				
			||||||
            text-align: center;
 | 
					            text-align: center;
 | 
				
			||||||
            padding: 5px;
 | 
					            padding: 5px;
 | 
				
			||||||
            padding-top: 10px;
 | 
					            padding-top: 10px;
 | 
				
			||||||
 | 
					            color: #040405;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .padd8 {
 | 
					        .item-description {
 | 
				
			||||||
            padding-top: 8px;
 | 
					            color: #595959;
 | 
				
			||||||
            padding-bottom: 8px;
 | 
					            font-size: 9px;
 | 
				
			||||||
 | 
					            line-height: 12px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .padd2 {
 | 
					        /* -- Total Display Table -- */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .total-display-container {
 | 
				
			||||||
 | 
					            padding: 0 25px;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .total-display-table {
 | 
				
			||||||
 | 
					            border-top: none;
 | 
				
			||||||
 | 
					            box-sizing: border-box;
 | 
				
			||||||
 | 
					            page-break-inside: avoid;
 | 
				
			||||||
 | 
					            page-break-before: auto;
 | 
				
			||||||
 | 
					            page-break-after: auto;
 | 
				
			||||||
 | 
					            margin-left: 500px;
 | 
				
			||||||
 | 
					            margin-top: 20px;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .total-table-attribute-label {
 | 
				
			||||||
 | 
					            font-size: 13px;
 | 
				
			||||||
 | 
					            color: #55547A;
 | 
				
			||||||
 | 
					            text-align: left;
 | 
				
			||||||
 | 
					            padding-left: 10px;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .total-table-attribute-value {
 | 
				
			||||||
 | 
					            font-weight: bold;
 | 
				
			||||||
 | 
					            text-align: right;
 | 
				
			||||||
 | 
					            font-size: 13px;
 | 
				
			||||||
 | 
					            color: #040405;
 | 
				
			||||||
 | 
					            padding-right: 10px;
 | 
				
			||||||
            padding-top: 2px;
 | 
					            padding-top: 2px;
 | 
				
			||||||
            padding-bottom: 2px;
 | 
					            padding-bottom: 2px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .table3 {
 | 
					 | 
				
			||||||
            /* border: 1px solid #EAF1FB; */
 | 
					 | 
				
			||||||
            border-top: none;
 | 
					 | 
				
			||||||
            /* padding-right: 30px; */
 | 
					 | 
				
			||||||
            box-sizing: border-box;
 | 
					 | 
				
			||||||
            width: 630px;
 | 
					 | 
				
			||||||
            /* position: absolute;
 | 
					 | 
				
			||||||
            right: -25; */
 | 
					 | 
				
			||||||
            page-break-inside: avoid;
 | 
					 | 
				
			||||||
            page-break-before: auto;
 | 
					 | 
				
			||||||
            page-break-after: auto;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        .total-border-left {
 | 
					        .total-border-left {
 | 
				
			||||||
            border: 1px solid #E8E8E8!important;
 | 
					            border: 1px solid #E8E8E8 !important;
 | 
				
			||||||
            border-right: 0px !important;
 | 
					            border-right: 0px !important;
 | 
				
			||||||
            padding-top: 0px;
 | 
					            padding-top: 0px;
 | 
				
			||||||
            padding:8px !important;
 | 
					            padding: 8px !important;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .total-border-right {
 | 
					        .total-border-right {
 | 
				
			||||||
            border: 1px solid #E8E8E8!important;
 | 
					            border: 1px solid #E8E8E8 !important;
 | 
				
			||||||
            border-left: 0px !important;
 | 
					            border-left: 0px !important;
 | 
				
			||||||
            padding-top: 0px;
 | 
					            padding-top: 0px;
 | 
				
			||||||
            padding:8px !important;
 | 
					            padding: 8px !important;
 | 
				
			||||||
 | 
					 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .inv-item {
 | 
					        /* -- Notes -- */
 | 
				
			||||||
            border-color: #d9d9d9;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        .no-border {
 | 
					 | 
				
			||||||
            border: none;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        .desc {
 | 
					 | 
				
			||||||
            font-weight: 100;
 | 
					 | 
				
			||||||
            text-align: justify;
 | 
					 | 
				
			||||||
            font-size: 10px;
 | 
					 | 
				
			||||||
            margin-bottom: 15px;
 | 
					 | 
				
			||||||
            margin-top:7px;
 | 
					 | 
				
			||||||
            color:rgba(0, 0, 0, 0.85);
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .notes {
 | 
					        .notes {
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: 300;
 | 
					 | 
				
			||||||
            font-size: 12px;
 | 
					            font-size: 12px;
 | 
				
			||||||
            color: #595959;
 | 
					            color: #595959;
 | 
				
			||||||
            margin-top: 15px;
 | 
					            margin-top: 15px;
 | 
				
			||||||
@ -362,8 +277,6 @@
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .notes-label {
 | 
					        .notes-label {
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 15px;
 | 
					            font-size: 15px;
 | 
				
			||||||
            line-height: 22px;
 | 
					            line-height: 22px;
 | 
				
			||||||
            letter-spacing: 0.05em;
 | 
					            letter-spacing: 0.05em;
 | 
				
			||||||
@ -373,13 +286,69 @@
 | 
				
			|||||||
            padding-bottom: 10px;
 | 
					            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>
 | 
					    </style>
 | 
				
			||||||
</head>
 | 
					</head>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<body>
 | 
					<body>
 | 
				
			||||||
    <div class="header-table">
 | 
					    <div class="header-container">
 | 
				
			||||||
        <table width="100%">
 | 
					        <table width="100%">
 | 
				
			||||||
            <tr>
 | 
					            <tr>
 | 
				
			||||||
                <td class="header-center">
 | 
					                <td class="text-center">
 | 
				
			||||||
                    @if($logo)
 | 
					                    @if($logo)
 | 
				
			||||||
                        <img class="header-logo" src="{{ $logo }}" alt="Company Logo">
 | 
					                        <img class="header-logo" src="{{ $logo }}" alt="Company Logo">
 | 
				
			||||||
                    @else
 | 
					                    @else
 | 
				
			||||||
@ -390,48 +359,44 @@
 | 
				
			|||||||
                </td>
 | 
					                </td>
 | 
				
			||||||
            </tr>
 | 
					            </tr>
 | 
				
			||||||
        </table>
 | 
					        </table>
 | 
				
			||||||
        <hr class="header-line" style="border: 0.620315px solid #E8E8E8;"/>
 | 
					        <hr class="header-bottom-divider" style="border: 0.620315px solid #E8E8E8;" />
 | 
				
			||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
    <div class="wrapper">
 | 
					    <div class="content-wrapper">
 | 
				
			||||||
        <div class="address">
 | 
					        <div style="padding-top: 30px">
 | 
				
			||||||
            <div class="company">
 | 
					            <div class="company-address-container">
 | 
				
			||||||
                @include('app.pdf.invoice.partials.company-address')
 | 
					                @include('app.pdf.invoice.partials.company-address')
 | 
				
			||||||
            </div>
 | 
					            </div>
 | 
				
			||||||
            <div class="job-add">
 | 
					            <div class="invoice-details-container">
 | 
				
			||||||
                <table>
 | 
					                <table>
 | 
				
			||||||
                    <tr>
 | 
					                    <tr>
 | 
				
			||||||
                        <td class="textStyle1" style="text-align: left; color: #55547A">Invoice Number</td>
 | 
					                        <td class="attribute-label">Invoice Number</td>
 | 
				
			||||||
                        <td class="textStyle2">  {{$invoice->invoice_number}}</td>
 | 
					                        <td class="attribute-value">  {{$invoice->invoice_number}}</td>
 | 
				
			||||||
                    </tr>
 | 
					                    </tr>
 | 
				
			||||||
                    <tr>
 | 
					                    <tr>
 | 
				
			||||||
                        <td class="textStyle1" style="text-align: left; color: #55547A">Invoice Date </td>
 | 
					                        <td class="attribute-label">Invoice Date </td>
 | 
				
			||||||
                        <td class="textStyle2">  {{$invoice->formattedInvoiceDate}}</td>
 | 
					                        <td class="attribute-value">  {{$invoice->formattedInvoiceDate}}</td>
 | 
				
			||||||
                    </tr>
 | 
					                    </tr>
 | 
				
			||||||
                    <tr>
 | 
					                    <tr>
 | 
				
			||||||
                        <td class="textStyle1" style="text-align: left; color: #55547A">Due date</td>
 | 
					                        <td class="attribute-label">Due date</td>
 | 
				
			||||||
                        <td class="textStyle2">  {{$invoice->formattedDueDate}}</td>
 | 
					                        <td class="attribute-value">  {{$invoice->formattedDueDate}}</td>
 | 
				
			||||||
                    </tr>
 | 
					                    </tr>
 | 
				
			||||||
                </table>
 | 
					                </table>
 | 
				
			||||||
            </div>
 | 
					            </div>
 | 
				
			||||||
            <div style="clear: both;"></div>
 | 
					            <div style="clear: both;"></div>
 | 
				
			||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
        <div class="bill-add">
 | 
					
 | 
				
			||||||
            <div class="bill-address-container">
 | 
					        <div class="billing-address-container">
 | 
				
			||||||
            @include('app.pdf.invoice.partials.billing-address')
 | 
					            @include('app.pdf.invoice.partials.billing-address')
 | 
				
			||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
            @if($invoice->user->billingaddress)
 | 
					
 | 
				
			||||||
                <div class="ship-address-container">
 | 
					        <div class="shipping-address-container" @if($invoice->user->billingaddress) style="float:left;" @else style="float:left: padding-left: 0px;" @endif>
 | 
				
			||||||
            @else
 | 
					 | 
				
			||||||
                <div class="ship-address-container " style="float:left;padding-left:0px;">
 | 
					 | 
				
			||||||
            @endif
 | 
					 | 
				
			||||||
            @include('app.pdf.invoice.partials.shipping-address')
 | 
					            @include('app.pdf.invoice.partials.shipping-address')
 | 
				
			||||||
 | 
					            @if($invoice->user->billingaddress) <div style="clear: both;"></div> @endif
 | 
				
			||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
            <div style="clear: both;"></div>
 | 
					        <div style="position: relative; clear: both;">
 | 
				
			||||||
        </div>
 | 
					 | 
				
			||||||
        <div style="position:relative">
 | 
					 | 
				
			||||||
            @include('app.pdf.invoice.partials.table')
 | 
					            @include('app.pdf.invoice.partials.table')
 | 
				
			||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
        @include('app.pdf.invoice.partials.notes')
 | 
					        @include('app.pdf.invoice.partials.notes')
 | 
				
			||||||
    </div>
 | 
					 | 
				
			||||||
</body>
 | 
					</body>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
</html>
 | 
					</html>
 | 
				
			||||||
 | 
				
			|||||||
@ -1,10 +1,11 @@
 | 
				
			|||||||
<!DOCTYPE html>
 | 
					<!DOCTYPE html>
 | 
				
			||||||
<html>
 | 
					<html>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<head>
 | 
					<head>
 | 
				
			||||||
    <title>Invoice</title>
 | 
					    <title>Invoice</title>
 | 
				
			||||||
    {{-- <link href="https://fonts.googleapis.com/css?family=Poppins&display=swap" rel="stylesheet"> --}}
 | 
					    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 | 
				
			||||||
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
 | 
					 | 
				
			||||||
    <style type="text/css">
 | 
					    <style type="text/css">
 | 
				
			||||||
 | 
					        /* -- Base -- */
 | 
				
			||||||
        body {
 | 
					        body {
 | 
				
			||||||
            font-family: "DejaVu Sans";
 | 
					            font-family: "DejaVu Sans";
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
@ -12,22 +13,22 @@
 | 
				
			|||||||
        html {
 | 
					        html {
 | 
				
			||||||
            margin: 0px;
 | 
					            margin: 0px;
 | 
				
			||||||
            padding: 0px;
 | 
					            padding: 0px;
 | 
				
			||||||
 | 
					            margin-top: 50px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        table {
 | 
					        table {
 | 
				
			||||||
            border-collapse: collapse;
 | 
					            border-collapse: collapse;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .header-left {
 | 
					        hr {
 | 
				
			||||||
            padding-top: 45px;
 | 
					            margin: 0 30px 0 30px;
 | 
				
			||||||
            padding-bottom: 45px;
 | 
					            color: rgba(0, 0, 0, 0.2);
 | 
				
			||||||
            padding-left: 30px;
 | 
					            border: 0.5px solid #EAF1FB;
 | 
				
			||||||
            display:inline-block;
 | 
					 | 
				
			||||||
            width:30%;
 | 
					 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        @page {
 | 
					
 | 
				
			||||||
            margin-top: 60px !important;
 | 
					        /* -- Header -- */
 | 
				
			||||||
        }
 | 
					
 | 
				
			||||||
        .header-table {
 | 
					        .header-container {
 | 
				
			||||||
            background: #817AE3;
 | 
					            background: #817AE3;
 | 
				
			||||||
            position: absolute;
 | 
					            position: absolute;
 | 
				
			||||||
            width: 100%;
 | 
					            width: 100%;
 | 
				
			||||||
@ -35,351 +36,266 @@
 | 
				
			|||||||
            left: 0px;
 | 
					            left: 0px;
 | 
				
			||||||
            top: -60px;
 | 
					            top: -60px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .header-section-left {
 | 
				
			||||||
 | 
					            padding-top: 45px;
 | 
				
			||||||
 | 
					            padding-bottom: 45px;
 | 
				
			||||||
 | 
					            padding-left: 30px;
 | 
				
			||||||
 | 
					            display: inline-block;
 | 
				
			||||||
 | 
					            width: 30%;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .header-logo {
 | 
					        .header-logo {
 | 
				
			||||||
            position: absolute;
 | 
					            position: absolute;
 | 
				
			||||||
            height: 50px;
 | 
					            height: 50px;
 | 
				
			||||||
            text-transform: capitalize;
 | 
					            text-transform: capitalize;
 | 
				
			||||||
            color: #fff;
 | 
					            color: #fff;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        .header-right {
 | 
					
 | 
				
			||||||
            display:inline-block;
 | 
					        .header-section-right {
 | 
				
			||||||
            width:35%;
 | 
					            display: inline-block;
 | 
				
			||||||
            float:right;
 | 
					            width: 35%;
 | 
				
			||||||
 | 
					            float: right;
 | 
				
			||||||
            padding: 20px 30px 20px 0px;
 | 
					            padding: 20px 30px 20px 0px;
 | 
				
			||||||
            text-align: right;
 | 
					            text-align: right;
 | 
				
			||||||
            color:white;
 | 
					            color: white;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        .inv-flex{
 | 
					 | 
				
			||||||
            display:flex;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        .inv-data{
 | 
					 | 
				
			||||||
            text-align:right;
 | 
					 | 
				
			||||||
            margin-right:120px;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        .inv-value{
 | 
					 | 
				
			||||||
            text-align:left;
 | 
					 | 
				
			||||||
            margin-left:160px;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        .header {
 | 
					        .header {
 | 
				
			||||||
            font-size: 20px;
 | 
					            font-size: 20px;
 | 
				
			||||||
            color: rgba(0, 0, 0, 0.7);
 | 
					            color: rgba(0, 0, 0, 0.7);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .TextColor1 {
 | 
					        /*  -- Estimate Details -- */
 | 
				
			||||||
            font-size: 16px;
 | 
					 | 
				
			||||||
            color: rgba(0, 0, 0, 0.5);
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .wrapper {
 | 
					        .invoice-details-container {
 | 
				
			||||||
           display: block;
 | 
					 | 
				
			||||||
           margin-top: 60px;
 | 
					 | 
				
			||||||
           padding-bottom: 20px;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        .address {
 | 
					 | 
				
			||||||
            display: block;
 | 
					 | 
				
			||||||
            padding-top: 20px;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        .company {
 | 
					 | 
				
			||||||
            padding: 0 0 0 30px;
 | 
					 | 
				
			||||||
            display: inline;
 | 
					 | 
				
			||||||
            float:left;
 | 
					 | 
				
			||||||
            width:30%;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        .company h1 {
 | 
					 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: bold;
 | 
					 | 
				
			||||||
            font-size: 15px;
 | 
					 | 
				
			||||||
            line-height: 22px;
 | 
					 | 
				
			||||||
            letter-spacing: 0.05em;
 | 
					 | 
				
			||||||
            margin-bottom: 0;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        .company-add {
 | 
					 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 10px;
 | 
					 | 
				
			||||||
            line-height: 15px;
 | 
					 | 
				
			||||||
            color: #595959;
 | 
					 | 
				
			||||||
            margin-top: 0px;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /* -------------------------- */
 | 
					 | 
				
			||||||
        /* billing style */
 | 
					 | 
				
			||||||
        .bill-address-container {
 | 
					 | 
				
			||||||
            display: block;
 | 
					 | 
				
			||||||
            /* position: absolute; */
 | 
					 | 
				
			||||||
            float:right;
 | 
					 | 
				
			||||||
            padding: 0 40px 0 0;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        .bill-to {
 | 
					 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 12px;
 | 
					 | 
				
			||||||
            line-height: 18px;
 | 
					 | 
				
			||||||
            padding: 0px;
 | 
					 | 
				
			||||||
            margin-bottom: 0px;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        .bill-user-name {
 | 
					 | 
				
			||||||
            max-width: 250px
 | 
					 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 15px;
 | 
					 | 
				
			||||||
            line-height: 22px;
 | 
					 | 
				
			||||||
            padding: 0px;
 | 
					 | 
				
			||||||
            margin-top: 0px;
 | 
					 | 
				
			||||||
            margin-bottom: 0px;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        .bill-user-address {
 | 
					 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 10px;
 | 
					 | 
				
			||||||
            line-height: 15px;
 | 
					 | 
				
			||||||
            color: #595959;
 | 
					 | 
				
			||||||
            padding: 0px;
 | 
					 | 
				
			||||||
            margin: 0px;
 | 
					 | 
				
			||||||
            width: 170px;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        .bill-user-phone {
 | 
					 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 10px;
 | 
					 | 
				
			||||||
            line-height: 15px;
 | 
					 | 
				
			||||||
            color: #595959;
 | 
					 | 
				
			||||||
            padding: 0px;
 | 
					 | 
				
			||||||
            margin: 0px;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        /* -------------------------- */
 | 
					 | 
				
			||||||
        /* shipping style */
 | 
					 | 
				
			||||||
        .ship-address-container {
 | 
					 | 
				
			||||||
            display: block;
 | 
					 | 
				
			||||||
            float:right;
 | 
					 | 
				
			||||||
            padding: 0 30px 0 0;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        .ship-to {
 | 
					 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 12px;
 | 
					 | 
				
			||||||
            line-height: 18px;
 | 
					 | 
				
			||||||
            padding: 0px;
 | 
					 | 
				
			||||||
            margin-bottom: 0px;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        .ship-user-name {
 | 
					 | 
				
			||||||
            max-width: 250px
 | 
					 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 15px;
 | 
					 | 
				
			||||||
            line-height: 22px;
 | 
					 | 
				
			||||||
            padding: 0px;
 | 
					 | 
				
			||||||
            margin-top: 0px;
 | 
					 | 
				
			||||||
            margin-bottom: 0px;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        .ship-user-address {
 | 
					 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 10px;
 | 
					 | 
				
			||||||
            line-height: 15px;
 | 
					 | 
				
			||||||
            color: #595959;
 | 
					 | 
				
			||||||
            padding: 0px;
 | 
					 | 
				
			||||||
            margin: 0px;
 | 
					 | 
				
			||||||
            width: 170px;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        .ship-user-phone {
 | 
					 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 10px;
 | 
					 | 
				
			||||||
            line-height: 15px;
 | 
					 | 
				
			||||||
            color: #595959;
 | 
					 | 
				
			||||||
            padding: 0px;
 | 
					 | 
				
			||||||
            margin: 0px;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        .job-add {
 | 
					 | 
				
			||||||
            display: inline;
 | 
					 | 
				
			||||||
            float: right;
 | 
					 | 
				
			||||||
            width:40%;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        .amount-due {
 | 
					 | 
				
			||||||
            background-color: #f2f2f2;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        .textRight {
 | 
					 | 
				
			||||||
            text-align: right;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        .textLeft {
 | 
					 | 
				
			||||||
            text-align: left;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        .textStyle1 {
 | 
					 | 
				
			||||||
            font-size: 12;
 | 
					 | 
				
			||||||
            font-weight: bold;
 | 
					 | 
				
			||||||
            line-height:22px;
 | 
					 | 
				
			||||||
            color: rgba(0, 0, 0, 0.8);
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        .textStyle2 {
 | 
					 | 
				
			||||||
            font-size: 12;
 | 
					 | 
				
			||||||
            line-height:22px;
 | 
					 | 
				
			||||||
            color: rgba(0, 0, 0, 0.7);
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        .main-table-header td {
 | 
					 | 
				
			||||||
            padding: 5px;
 | 
					 | 
				
			||||||
            padding-bottom: 10px;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        .main-table-header {
 | 
					 | 
				
			||||||
            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;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        .ItemTableHeader {
 | 
					 | 
				
			||||||
            font-size: 13.5;
 | 
					 | 
				
			||||||
            text-align: center;
 | 
					 | 
				
			||||||
            color: rgba(0, 0, 0, 0.85);
 | 
					 | 
				
			||||||
            padding: 5px;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        tr.main-table-header th {
 | 
					 | 
				
			||||||
            border-bottom: 0.620315px solid #E8E8E8;
 | 
					 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 12px;
 | 
					 | 
				
			||||||
            line-height: 18px;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        tr.item-details td {
 | 
					 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 12px;
 | 
					 | 
				
			||||||
            line-height: 18px;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        .items {
 | 
					 | 
				
			||||||
            font-size: 13;
 | 
					 | 
				
			||||||
            color: rgba(0, 0, 0, 0.6);
 | 
					 | 
				
			||||||
            text-align: center;
 | 
					 | 
				
			||||||
            padding: 5px;
 | 
					 | 
				
			||||||
            padding-top: 10px;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        .note-header {
 | 
					 | 
				
			||||||
            font-size: 13;
 | 
					 | 
				
			||||||
            color: rgba(0, 0, 0, 0.6);
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        .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 {
 | 
					 | 
				
			||||||
            border: 1px solid #EAF1FB;
 | 
					 | 
				
			||||||
            border-top: none;
 | 
					 | 
				
			||||||
            box-sizing: border-box;
 | 
					 | 
				
			||||||
            width: 630px;
 | 
					 | 
				
			||||||
            page-break-inside: avoid;
 | 
					 | 
				
			||||||
            page-break-before: auto;
 | 
					 | 
				
			||||||
            page-break-after: auto;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        .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;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        .inv-item {
 | 
					 | 
				
			||||||
            border-color: #d9d9d9;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        .no-border {
 | 
					 | 
				
			||||||
            border: none;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        .desc {
 | 
					 | 
				
			||||||
            font-weight: 100;
 | 
					 | 
				
			||||||
            text-align: justify;
 | 
					 | 
				
			||||||
            font-size: 10px;
 | 
					 | 
				
			||||||
            margin-bottom: 15px;
 | 
					 | 
				
			||||||
            margin-top:7px;
 | 
					 | 
				
			||||||
            color:rgba(0, 0, 0, 0.85);
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        .company-details{
 | 
					 | 
				
			||||||
            text-align: center;
 | 
					            text-align: center;
 | 
				
			||||||
            width: 40%;
 | 
					            width: 40%;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .company-details h1 {
 | 
					        .invoice-details-container h1 {
 | 
				
			||||||
            margin:0;
 | 
					            margin: 0;
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: 500;
 | 
					 | 
				
			||||||
            font-size: 24px;
 | 
					            font-size: 24px;
 | 
				
			||||||
            line-height: 36px;
 | 
					            line-height: 36px;
 | 
				
			||||||
            text-align: right;
 | 
					            text-align: right;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .company-details h4 {
 | 
					        .invoice-details-container h4 {
 | 
				
			||||||
            margin:0;
 | 
					            margin: 0;
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 10px;
 | 
					            font-size: 10px;
 | 
				
			||||||
            line-height: 15px;
 | 
					            line-height: 15px;
 | 
				
			||||||
            text-align: right;
 | 
					            text-align: right;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .company-details h3 {
 | 
					        .invoice-details-container h3 {
 | 
				
			||||||
             margin-bottom:1px;
 | 
					            margin-bottom: 1px;
 | 
				
			||||||
             margin-top:0;
 | 
					            margin-top: 0;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        /* -- Content Wrapper -- */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .content-wrapper {
 | 
				
			||||||
 | 
					            display: block;
 | 
				
			||||||
 | 
					            margin-top: 60px;
 | 
				
			||||||
 | 
					            padding-bottom: 20px;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .address-container {
 | 
				
			||||||
 | 
					            display: block;
 | 
				
			||||||
 | 
					            padding-top: 20px;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        /* -- Company -- */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .company-address-container {
 | 
				
			||||||
 | 
					            padding: 0 0 0 30px;
 | 
				
			||||||
 | 
					            display: inline;
 | 
				
			||||||
 | 
					            float: left;
 | 
				
			||||||
 | 
					            width: 30%;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .company-address-container h1 {
 | 
				
			||||||
 | 
					            font-weight: bold;
 | 
				
			||||||
 | 
					            font-size: 15px;
 | 
				
			||||||
 | 
					            letter-spacing: 0.05em;
 | 
				
			||||||
 | 
					            margin-bottom: 0;
 | 
				
			||||||
 | 
					            margin-top: 18px;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .company-address{
 | 
				
			||||||
 | 
					            font-size: 10px;
 | 
				
			||||||
 | 
					            line-height: 15px;
 | 
				
			||||||
 | 
					            color: #595959;
 | 
				
			||||||
 | 
					            margin-top: 0px;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        /* -- Billing -- */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .billing-address-container {
 | 
				
			||||||
 | 
					            display: block;
 | 
				
			||||||
 | 
					            /* position: absolute; */
 | 
				
			||||||
 | 
					            float: right;
 | 
				
			||||||
 | 
					            padding: 0 40px 0 0;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .billing-address-label {
 | 
				
			||||||
 | 
					            font-size: 12px;
 | 
				
			||||||
 | 
					            line-height: 18px;
 | 
				
			||||||
 | 
					            padding: 0px;
 | 
				
			||||||
 | 
					            margin-bottom: 0px;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .billing-address-name {
 | 
				
			||||||
 | 
					            max-width: 250px;
 | 
				
			||||||
 | 
					            font-size: 15px;
 | 
				
			||||||
 | 
					            line-height: 22px;
 | 
				
			||||||
 | 
					            padding: 0px;
 | 
				
			||||||
 | 
					            margin-top: 0px;
 | 
				
			||||||
 | 
					            margin-bottom: 0px;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .billing-address{
 | 
				
			||||||
 | 
					            font-size: 10px;
 | 
				
			||||||
 | 
					            line-height: 15px;
 | 
				
			||||||
 | 
					            color: #595959;
 | 
				
			||||||
 | 
					            padding: 0px;
 | 
				
			||||||
 | 
					            margin: 0px;
 | 
				
			||||||
 | 
					            width: 170px;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        /* -- Shipping -- */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .shipping-address-container {
 | 
				
			||||||
 | 
					            display: block;
 | 
				
			||||||
 | 
					            float: right;
 | 
				
			||||||
 | 
					            padding: 0 30px 0 0;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .shipping-address-label {
 | 
				
			||||||
 | 
					            font-size: 12px;
 | 
				
			||||||
 | 
					            line-height: 18px;
 | 
				
			||||||
 | 
					            padding: 0px;
 | 
				
			||||||
 | 
					            margin-bottom: 0px;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .shipping-address-name {
 | 
				
			||||||
 | 
					            max-width: 250px;
 | 
				
			||||||
 | 
					            font-size: 15px;
 | 
				
			||||||
 | 
					            line-height: 22px;
 | 
				
			||||||
 | 
					            padding: 0px;
 | 
				
			||||||
 | 
					            margin-top: 0px;
 | 
				
			||||||
 | 
					            margin-bottom: 0px;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .shipping-address {
 | 
				
			||||||
 | 
					            font-size: 10px;
 | 
				
			||||||
 | 
					            line-height: 15px;
 | 
				
			||||||
 | 
					            color: #595959;
 | 
				
			||||||
 | 
					            padding: 0px;
 | 
				
			||||||
 | 
					            margin: 0px;
 | 
				
			||||||
 | 
					            width: 170px;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        /* -- Items Table -- */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .items-table {
 | 
				
			||||||
 | 
					            margin-top: 35px;
 | 
				
			||||||
 | 
					            padding: 0px 30px 10px 30px;
 | 
				
			||||||
 | 
					            page-break-before: avoid;
 | 
				
			||||||
 | 
					            page-break-after: auto;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .items-table hr {
 | 
				
			||||||
 | 
					            height: 0.1px;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .item-table-heading {
 | 
				
			||||||
 | 
					            font-size: 13.5;
 | 
				
			||||||
 | 
					            text-align: center;
 | 
				
			||||||
 | 
					            color: rgba(0, 0, 0, 0.85);
 | 
				
			||||||
 | 
					            padding: 5px;
 | 
				
			||||||
 | 
					            color: #55547A;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        tr.item-table-heading-row th {
 | 
				
			||||||
 | 
					            border-bottom: 0.620315px solid #E8E8E8;
 | 
				
			||||||
 | 
					            font-size: 12px;
 | 
				
			||||||
 | 
					            line-height: 18px;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        tr.item-row td {
 | 
				
			||||||
 | 
					            font-size: 12px;
 | 
				
			||||||
 | 
					            line-height: 18px;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .item-cell {
 | 
				
			||||||
 | 
					            font-size: 13;
 | 
				
			||||||
 | 
					            text-align: center;
 | 
				
			||||||
 | 
					            padding: 5px;
 | 
				
			||||||
 | 
					            padding-top: 10px;
 | 
				
			||||||
 | 
					            color: #040405;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .item-description {
 | 
				
			||||||
 | 
					            color: #595959;
 | 
				
			||||||
 | 
					            font-size: 9px;
 | 
				
			||||||
 | 
					            line-height: 12px;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        /* -- Total Display Table -- */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .total-display-container {
 | 
				
			||||||
 | 
					            padding: 0 25px;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .item-cell-table-hr {
 | 
				
			||||||
 | 
					            margin: 0 25px 0 30px;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .total-display-table {
 | 
				
			||||||
 | 
					            box-sizing: border-box;
 | 
				
			||||||
 | 
					            page-break-inside: avoid;
 | 
				
			||||||
 | 
					            page-break-before: auto;
 | 
				
			||||||
 | 
					            page-break-after: auto;
 | 
				
			||||||
 | 
					            margin-left: 500px;
 | 
				
			||||||
 | 
					            border: 1px solid #EAF1FB;
 | 
				
			||||||
 | 
					            border-top: none;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .total-table-attribute-label {
 | 
				
			||||||
 | 
					            font-size: 12px;
 | 
				
			||||||
 | 
					            color: #55547A;
 | 
				
			||||||
 | 
					            text-align: left;
 | 
				
			||||||
 | 
					            padding-left: 10px;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .total-table-attribute-value {
 | 
				
			||||||
 | 
					            font-weight: 500;
 | 
				
			||||||
 | 
					            text-align: right;
 | 
				
			||||||
 | 
					            font-size: 12px;
 | 
				
			||||||
 | 
					            color: #040405;
 | 
				
			||||||
 | 
					            padding-right: 10px;
 | 
				
			||||||
 | 
					            padding-top: 2px;
 | 
				
			||||||
 | 
					            padding-bottom: 2px;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .total-border-left {
 | 
				
			||||||
 | 
					            border: 1px solid #E8E8E8 !important;
 | 
				
			||||||
 | 
					            border-right: 0px !important;
 | 
				
			||||||
 | 
					            padding-top: 0px;
 | 
				
			||||||
 | 
					            padding: 8px !important;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .total-border-right {
 | 
				
			||||||
 | 
					            border: 1px solid #E8E8E8 !important;
 | 
				
			||||||
 | 
					            border-left: 0px !important;
 | 
				
			||||||
 | 
					            padding-top: 0px;
 | 
				
			||||||
 | 
					            padding: 8px !important;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        /* -- Notes -- */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .notes {
 | 
					        .notes {
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: 300;
 | 
					 | 
				
			||||||
            font-size: 12px;
 | 
					            font-size: 12px;
 | 
				
			||||||
            color: #595959;
 | 
					            color: #595959;
 | 
				
			||||||
            margin-top: 15px;
 | 
					            margin-top: 15px;
 | 
				
			||||||
@ -390,8 +306,6 @@
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .notes-label {
 | 
					        .notes-label {
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 15px;
 | 
					            font-size: 15px;
 | 
				
			||||||
            line-height: 22px;
 | 
					            line-height: 22px;
 | 
				
			||||||
            letter-spacing: 0.05em;
 | 
					            letter-spacing: 0.05em;
 | 
				
			||||||
@ -401,23 +315,79 @@
 | 
				
			|||||||
            padding-bottom: 10px;
 | 
					            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>
 | 
					    </style>
 | 
				
			||||||
</head>
 | 
					</head>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<body>
 | 
					<body>
 | 
				
			||||||
    <div class="header-table">
 | 
					    <div class="header-container">
 | 
				
			||||||
        <table width="100%">
 | 
					        <table width="100%">
 | 
				
			||||||
            <tr>
 | 
					            <tr>
 | 
				
			||||||
                @if($logo)
 | 
					                @if($logo)
 | 
				
			||||||
                    <td width="60%" class="header-left">
 | 
					                <td width="60%" class="header-section-left">
 | 
				
			||||||
                    <img class="header-logo" src="{{ $logo }}" alt="Company Logo">
 | 
					                    <img class="header-logo" src="{{ $logo }}" alt="Company Logo">
 | 
				
			||||||
                    @else
 | 
					                    @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)
 | 
					                    @if($invoice->user->company)
 | 
				
			||||||
                    <h1 class="header-logo"> {{$invoice->user->company->name}} </h1>
 | 
					                    <h1 class="header-logo"> {{$invoice->user->company->name}} </h1>
 | 
				
			||||||
                    @endif
 | 
					                    @endif
 | 
				
			||||||
                    @endif
 | 
					                    @endif
 | 
				
			||||||
                </td>
 | 
					                </td>
 | 
				
			||||||
                <td width="40%" class="header-right company-details">
 | 
					                <td width="40%" class="header-section-right invoice-details-container">
 | 
				
			||||||
                    <h1>Invoice</h1>
 | 
					                    <h1>Invoice</h1>
 | 
				
			||||||
                    <h4>{{$invoice->invoice_number}}</h4>
 | 
					                    <h4>{{$invoice->invoice_number}}</h4>
 | 
				
			||||||
                    <h4>{{$invoice->formattedInvoiceDate}}</h4>
 | 
					                    <h4>{{$invoice->formattedInvoiceDate}}</h4>
 | 
				
			||||||
@ -426,18 +396,18 @@
 | 
				
			|||||||
        </table>
 | 
					        </table>
 | 
				
			||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
    <hr>
 | 
					    <hr>
 | 
				
			||||||
    <div class="wrapper">
 | 
					    <div class="content-wrapper">
 | 
				
			||||||
        <div class="address">
 | 
					        <div class="address-container">
 | 
				
			||||||
            <div class="company">
 | 
					            <div class="company-address-container">
 | 
				
			||||||
                @include('app.pdf.invoice.partials.company-address')
 | 
					                @include('app.pdf.invoice.partials.company-address')
 | 
				
			||||||
            </div>
 | 
					            </div>
 | 
				
			||||||
            <div class="ship-address-container">
 | 
					            <div class="shipping-address-container">
 | 
				
			||||||
                @include('app.pdf.invoice.partials.shipping-address')
 | 
					                @include('app.pdf.invoice.partials.shipping-address')
 | 
				
			||||||
            </div>
 | 
					            </div>
 | 
				
			||||||
            @if($invoice->user->shippingaddress)
 | 
					            @if($invoice->user->shippingaddress)
 | 
				
			||||||
                <div class="bill-address-container">
 | 
					            <div class="billing-address-container">
 | 
				
			||||||
                @else
 | 
					                @else
 | 
				
			||||||
                <div class="bill-address-container" style="float:right;padding-right:0px;">
 | 
					                <div class="billing-address-container" style="float:right;padding-right:0px;">
 | 
				
			||||||
                    @endif
 | 
					                    @endif
 | 
				
			||||||
                    @include('app.pdf.invoice.partials.billing-address')
 | 
					                    @include('app.pdf.invoice.partials.billing-address')
 | 
				
			||||||
                </div>
 | 
					                </div>
 | 
				
			||||||
@ -447,4 +417,5 @@
 | 
				
			|||||||
            @include('app.pdf.invoice.partials.notes')
 | 
					            @include('app.pdf.invoice.partials.notes')
 | 
				
			||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
</body>
 | 
					</body>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
</html>
 | 
					</html>
 | 
				
			||||||
 | 
				
			|||||||
@ -1,11 +1,13 @@
 | 
				
			|||||||
<!DOCTYPE html>
 | 
					<!DOCTYPE html>
 | 
				
			||||||
<html>
 | 
					<html>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<head>
 | 
					<head>
 | 
				
			||||||
    <title>Invoice</title>
 | 
					    <title>Invoice</title>
 | 
				
			||||||
    {{-- <link href="https://fonts.googleapis.com/css?family=Poppins&display=swap" rel="stylesheet"> --}}
 | 
					    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 | 
				
			||||||
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    <style type="text/css">
 | 
					    <style type="text/css">
 | 
				
			||||||
 | 
					        /* -- Base -- */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        body {
 | 
					        body {
 | 
				
			||||||
            font-family: "DejaVu Sans";
 | 
					            font-family: "DejaVu Sans";
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
@ -13,146 +15,134 @@
 | 
				
			|||||||
        html {
 | 
					        html {
 | 
				
			||||||
            margin: 0px;
 | 
					            margin: 0px;
 | 
				
			||||||
            padding: 0px;
 | 
					            padding: 0px;
 | 
				
			||||||
 | 
					            margin-top: 50px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        table {
 | 
					        table {
 | 
				
			||||||
            border-collapse: collapse;
 | 
					            border-collapse: collapse;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .header-line {
 | 
					 | 
				
			||||||
            color:rgba(0, 0, 0, 0.2);
 | 
					 | 
				
			||||||
            position: absolute;
 | 
					 | 
				
			||||||
            top: 80px;
 | 
					 | 
				
			||||||
            left: 0px;
 | 
					 | 
				
			||||||
            right: -70px;
 | 
					 | 
				
			||||||
            width: 100%;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        hr {
 | 
					        hr {
 | 
				
			||||||
            color:rgba(0, 0, 0, 0.2);
 | 
					            color: rgba(0, 0, 0, 0.2);
 | 
				
			||||||
            border: 0.5px solid #EAF1FB;
 | 
					            border: 0.5px solid #EAF1FB;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .items-table-hr{
 | 
					        /* -- Header -- */
 | 
				
			||||||
            margin: 0 30px 0 30px;
 | 
					
 | 
				
			||||||
 | 
					        .header-bottom-divider {
 | 
				
			||||||
 | 
					            color: rgba(0, 0, 0, 0.2);
 | 
				
			||||||
 | 
					            position: absolute;
 | 
				
			||||||
 | 
					            top: 100px;
 | 
				
			||||||
 | 
					            left: 0px;
 | 
				
			||||||
 | 
					            width: 100%;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .header-section-left {
 | 
				
			||||||
        .header-left {
 | 
					 | 
				
			||||||
            padding-top: 45px;
 | 
					            padding-top: 45px;
 | 
				
			||||||
            padding-bottom: 45px;
 | 
					            padding-bottom: 45px;
 | 
				
			||||||
            padding-left: 30px;
 | 
					            padding-left: 30px;
 | 
				
			||||||
            display:inline-block;
 | 
					            display: inline-block;
 | 
				
			||||||
            width:30%;
 | 
					            width: 30%;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        .header-table {
 | 
					
 | 
				
			||||||
 | 
					        .header-container {
 | 
				
			||||||
            position: absolute;
 | 
					            position: absolute;
 | 
				
			||||||
            width: 100%;
 | 
					            width: 100%;
 | 
				
			||||||
            height: 150px;
 | 
					            height: 150px;
 | 
				
			||||||
            left: 0px;
 | 
					            left: 0px;
 | 
				
			||||||
            top: -60px;
 | 
					            top: -60px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .header-logo {
 | 
					        .header-logo {
 | 
				
			||||||
            position: absolute;
 | 
					            position: absolute;
 | 
				
			||||||
            height: 50px;
 | 
					            height: 50px;
 | 
				
			||||||
            text-transform: capitalize;
 | 
					            text-transform: capitalize;
 | 
				
			||||||
            color: #817AE3;
 | 
					            color: #817AE3;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        .header-right {
 | 
					
 | 
				
			||||||
            display:inline-block;
 | 
					        .header-section-right {
 | 
				
			||||||
 | 
					            display: inline-block;
 | 
				
			||||||
            position: absolute;
 | 
					            position: absolute;
 | 
				
			||||||
            right:0;
 | 
					            right: 0;
 | 
				
			||||||
            padding: 15px 30px 15px 0px;
 | 
					            padding: 15px 30px 15px 0px;
 | 
				
			||||||
            float: right;
 | 
					            float: right;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        .inv-flex{
 | 
					
 | 
				
			||||||
            display:flex;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        .inv-data{
 | 
					 | 
				
			||||||
            text-align:right;
 | 
					 | 
				
			||||||
            margin-right:120px;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        .inv-value{
 | 
					 | 
				
			||||||
            text-align:left;
 | 
					 | 
				
			||||||
            margin-left:160px;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        .header {
 | 
					        .header {
 | 
				
			||||||
            font-size: 20px;
 | 
					            font-size: 20px;
 | 
				
			||||||
            color: rgba(0, 0, 0, 0.7);
 | 
					            color: rgba(0, 0, 0, 0.7);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .TextColor1 {
 | 
					        /* -- Company Address */
 | 
				
			||||||
            font-size: 16px;
 | 
					
 | 
				
			||||||
            color: rgba(0, 0, 0, 0.5);
 | 
					        .company-address-container {
 | 
				
			||||||
 | 
					            width: auto;
 | 
				
			||||||
 | 
					            text-transform: capitalize;
 | 
				
			||||||
 | 
					            margin-bottom: 2px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        @page {
 | 
					         .company-address-container h1 {
 | 
				
			||||||
            margin-top: 60px !important;
 | 
					            font-size: 15px;
 | 
				
			||||||
 | 
					            line-height: 22px;
 | 
				
			||||||
 | 
					            letter-spacing: 0.05em;
 | 
				
			||||||
 | 
					            margin-bottom: 0px;
 | 
				
			||||||
 | 
					            margin-top: 10px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        .wrapper {
 | 
					
 | 
				
			||||||
 | 
					        .company-address {
 | 
				
			||||||
 | 
					            margin-top: 2px;
 | 
				
			||||||
 | 
					            font-size: 12px;
 | 
				
			||||||
 | 
					            line-height: 15px;
 | 
				
			||||||
 | 
					            color: #595959;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        /* -- Content Wrapper  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .content-wrapper {
 | 
				
			||||||
            display: block;
 | 
					            display: block;
 | 
				
			||||||
           padding-top: 50px;
 | 
					            padding-top: 100px;
 | 
				
			||||||
            padding-bottom: 20px;
 | 
					            padding-bottom: 20px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .address {
 | 
					        .main-content {
 | 
				
			||||||
            display: inline-block;
 | 
					
 | 
				
			||||||
            padding-top: 100px;
 | 
					 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .bill-add {
 | 
					        .customer-address-container {
 | 
				
			||||||
            display: block;
 | 
					            display: block;
 | 
				
			||||||
            float:left;
 | 
					            float: left;
 | 
				
			||||||
            width:40%;
 | 
					            width: 40%;
 | 
				
			||||||
            padding: 0 0 0 30px;
 | 
					            padding: 0 0 0 30px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        .company {
 | 
					
 | 
				
			||||||
            padding-left: 30px;
 | 
					        /* -- Shipping -- */
 | 
				
			||||||
            display: inline;
 | 
					        .shipping-address-container {
 | 
				
			||||||
 | 
					            float:right;
 | 
				
			||||||
 | 
					            display: block;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .shipping-address-container--left {
 | 
				
			||||||
            float:left;
 | 
					            float:left;
 | 
				
			||||||
            width:30%;
 | 
					            display: block;
 | 
				
			||||||
 | 
					            padding-left: 0;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .company h1 {
 | 
					        .shipping-address-label {
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: bold;
 | 
					 | 
				
			||||||
            font-size: 18px;
 | 
					 | 
				
			||||||
            line-height: 22px;
 | 
					 | 
				
			||||||
            letter-spacing: 0.05em;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        .company-add {
 | 
					 | 
				
			||||||
            text-align: left;
 | 
					 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 10px;
 | 
					 | 
				
			||||||
            line-height: 15px;
 | 
					 | 
				
			||||||
            color: #595959;
 | 
					 | 
				
			||||||
            margin: 0px;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
         /* -------------------------- */
 | 
					 | 
				
			||||||
        /* shipping style */
 | 
					 | 
				
			||||||
        .ship-to {
 | 
					 | 
				
			||||||
            padding-top: 5px;
 | 
					            padding-top: 5px;
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 12px;
 | 
					            font-size: 12px;
 | 
				
			||||||
            line-height: 18px;
 | 
					            line-height: 18px;
 | 
				
			||||||
            margin-bottom: 0px;
 | 
					            margin-bottom: 0px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .ship-user-name {
 | 
					        .shipping-address-name {
 | 
				
			||||||
            padding: 0px;
 | 
					            padding: 0px;
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 15px;
 | 
					            font-size: 15px;
 | 
				
			||||||
            line-height: 22px;
 | 
					            line-height: 22px;
 | 
				
			||||||
            margin: 0px;
 | 
					            margin: 0px;
 | 
				
			||||||
 | 
					            max-width: 160px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .ship-user-address {
 | 
					        .shipping-address {
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 10px;
 | 
					            font-size: 10px;
 | 
				
			||||||
            line-height: 15px;
 | 
					            line-height: 15px;
 | 
				
			||||||
            color: #595959;
 | 
					            color: #595959;
 | 
				
			||||||
@ -160,237 +150,156 @@
 | 
				
			|||||||
            width: 160px;
 | 
					            width: 160px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .ship-user-phone {
 | 
					        /* -- Billing -- */
 | 
				
			||||||
            font-style: normal;
 | 
					
 | 
				
			||||||
            font-weight: normal;
 | 
					        .billing-address-container {
 | 
				
			||||||
            font-size: 10px;
 | 
					            display: block;
 | 
				
			||||||
            line-height: 15px;
 | 
					            float: left;
 | 
				
			||||||
            color: #595959;
 | 
					 | 
				
			||||||
            margin: 0px;
 | 
					 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
         /* -------------------------- */
 | 
					        .billing-address-label {
 | 
				
			||||||
        /* billing style */
 | 
					 | 
				
			||||||
        .bill-to {
 | 
					 | 
				
			||||||
            padding-top: 5px;
 | 
					            padding-top: 5px;
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 12px;
 | 
					            font-size: 12px;
 | 
				
			||||||
            line-height: 18px;
 | 
					            line-height: 18px;
 | 
				
			||||||
            margin-bottom: 0px;
 | 
					            margin-bottom: 0px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .bill-user-name {
 | 
					        .billing-address-name {
 | 
				
			||||||
            padding: 0px;
 | 
					            padding: 0px;
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 15px;
 | 
					            font-size: 15px;
 | 
				
			||||||
            line-height: 22px;
 | 
					            line-height: 22px;
 | 
				
			||||||
            margin: 0px;
 | 
					            margin: 0px;
 | 
				
			||||||
 | 
					            max-width: 160px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .bill-user-address {
 | 
					        .billing-address {
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 10px;
 | 
					 | 
				
			||||||
            line-height: 15px;
 | 
					 | 
				
			||||||
            color: #595959;
 | 
					 | 
				
			||||||
            margin:0px;
 | 
					 | 
				
			||||||
            width: 160px;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        .bill-user-phone {
 | 
					 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 10px;
 | 
					            font-size: 10px;
 | 
				
			||||||
            line-height: 15px;
 | 
					            line-height: 15px;
 | 
				
			||||||
            color: #595959;
 | 
					            color: #595959;
 | 
				
			||||||
            margin: 0px;
 | 
					            margin: 0px;
 | 
				
			||||||
 | 
					            width: 160px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        /*  -- Estimate Details -- */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .job-add {
 | 
					        .invoice-details-container {
 | 
				
			||||||
            display: block;
 | 
					            display: block;
 | 
				
			||||||
            float: right;
 | 
					            float: right;
 | 
				
			||||||
            padding: 20px 30px 0 0;
 | 
					            padding: 20px 30px 0 0;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        .amount-due {
 | 
					 | 
				
			||||||
            background-color: #f2f2f2;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .textRight {
 | 
					        .attribute-label {
 | 
				
			||||||
            text-align: right;
 | 
					            font-size: 12px;
 | 
				
			||||||
        }
 | 
					            line-height: 18px;
 | 
				
			||||||
 | 
					 | 
				
			||||||
        .textLeft {
 | 
					 | 
				
			||||||
            text-align: left;
 | 
					            text-align: left;
 | 
				
			||||||
 | 
					            color: #55547A
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .textStyle1 {
 | 
					        .attribute-value {
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 12px;
 | 
					 | 
				
			||||||
            line-height: 18px;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        .textStyle2 {
 | 
					 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 12px;
 | 
					            font-size: 12px;
 | 
				
			||||||
            line-height: 18px;
 | 
					            line-height: 18px;
 | 
				
			||||||
            text-align: right;
 | 
					            text-align: right;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        .main-table-header td {
 | 
					
 | 
				
			||||||
            padding: 10px;
 | 
					        /* -- Items Table -- */
 | 
				
			||||||
        }
 | 
					
 | 
				
			||||||
        .main-table-header {
 | 
					        .items-table {
 | 
				
			||||||
            border-bottom: 1px solid red;
 | 
					            margin-top: 35px;
 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        tr.main-table-header th {
 | 
					 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: 600;
 | 
					 | 
				
			||||||
            font-size: 12px;
 | 
					 | 
				
			||||||
            line-height: 18px;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        tr.item-details td {
 | 
					 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 12px;
 | 
					 | 
				
			||||||
            line-height: 18px;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        .table2 {
 | 
					 | 
				
			||||||
            padding: 0px 30px 10px 30px;
 | 
					            padding: 0px 30px 10px 30px;
 | 
				
			||||||
            page-break-before: avoid;
 | 
					            page-break-before: avoid;
 | 
				
			||||||
            page-break-after: auto;
 | 
					            page-break-after: auto;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .table2 hr {
 | 
					        .items-table hr {
 | 
				
			||||||
            height:0.1px;
 | 
					            height: 0.1px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .ItemTableHeader {
 | 
					        .item-table-heading {
 | 
				
			||||||
            font-size: 13.5;
 | 
					            font-size: 13.5;
 | 
				
			||||||
            text-align: center;
 | 
					            text-align: center;
 | 
				
			||||||
            color: rgba(0, 0, 0, 0.85);
 | 
					            color: rgba(0, 0, 0, 0.85);
 | 
				
			||||||
            padding: 5px;
 | 
					            padding: 5px;
 | 
				
			||||||
 | 
					            color: #55547A;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .items {
 | 
					        tr.item-table-heading-row th {
 | 
				
			||||||
 | 
					            border-bottom: 0.620315px solid #E8E8E8;
 | 
				
			||||||
 | 
					            font-size: 12px;
 | 
				
			||||||
 | 
					            line-height: 18px;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        tr.item-row td {
 | 
				
			||||||
 | 
					            font-size: 12px;
 | 
				
			||||||
 | 
					            line-height: 18px;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .item-cell {
 | 
				
			||||||
            font-size: 13;
 | 
					            font-size: 13;
 | 
				
			||||||
            color: rgba(0, 0, 0, 0.6);
 | 
					 | 
				
			||||||
            text-align: center;
 | 
					            text-align: center;
 | 
				
			||||||
            padding: 5px;
 | 
					            padding: 5px;
 | 
				
			||||||
 | 
					            padding-top: 10px;
 | 
				
			||||||
 | 
					            color: #040405;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .note-header {
 | 
					        .item-description {
 | 
				
			||||||
            font-size: 13;
 | 
					            color: #595959;
 | 
				
			||||||
            color: rgba(0, 0, 0, 0.6);
 | 
					            font-size: 9px;
 | 
				
			||||||
 | 
					            line-height: 12px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .note-text {
 | 
					        .item-cell-table-hr {
 | 
				
			||||||
            font-size: 10;
 | 
					            margin: 0 30px 0 30px;
 | 
				
			||||||
            color: rgba(0, 0, 0, 0.6);
 | 
					 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .padd8 {
 | 
					        /* -- Total Display Table -- */
 | 
				
			||||||
            padding-top: 8px;
 | 
					
 | 
				
			||||||
            padding-bottom: 8px;
 | 
					        .total-display-container {
 | 
				
			||||||
 | 
					            padding: 0 25px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .padd2 {
 | 
					
 | 
				
			||||||
 | 
					        .total-display-table {
 | 
				
			||||||
 | 
					            box-sizing: border-box;
 | 
				
			||||||
 | 
					            page-break-inside: avoid;
 | 
				
			||||||
 | 
					            page-break-before: auto;
 | 
				
			||||||
 | 
					            page-break-after: auto;
 | 
				
			||||||
 | 
					            margin-left: 500px;
 | 
				
			||||||
 | 
					            margin-top: 20px;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .total-table-attribute-label {
 | 
				
			||||||
 | 
					            font-size: 12px;
 | 
				
			||||||
 | 
					            color: #55547A;
 | 
				
			||||||
 | 
					            text-align: left;
 | 
				
			||||||
 | 
					            padding-left: 10px;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .total-table-attribute-value {
 | 
				
			||||||
 | 
					            font-weight: bold;
 | 
				
			||||||
 | 
					            text-align: right;
 | 
				
			||||||
 | 
					            font-size: 12px;
 | 
				
			||||||
 | 
					            color: #040405;
 | 
				
			||||||
 | 
					            padding-right: 10px;
 | 
				
			||||||
            padding-top: 2px;
 | 
					            padding-top: 2px;
 | 
				
			||||||
            padding-bottom: 2px;
 | 
					            padding-bottom: 2px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .table3 {
 | 
					        .total-border-left {
 | 
				
			||||||
            border: 1px solid #EAF1FB;
 | 
					            border: 1px solid #E8E8E8 !important;
 | 
				
			||||||
            border-top: none;
 | 
					            border-right: 0px !important;
 | 
				
			||||||
            box-sizing: border-box;
 | 
					            padding-top: 0px;
 | 
				
			||||||
            width: 630px;
 | 
					            padding: 8px !important;
 | 
				
			||||||
            page-break-inside: avoid;
 | 
					 | 
				
			||||||
            page-break-before: auto;
 | 
					 | 
				
			||||||
            page-break-after: auto;
 | 
					 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .text-per-item-table3 {
 | 
					        .total-border-right {
 | 
				
			||||||
            border: 1px solid #EAF1FB;
 | 
					            border: 1px solid #E8E8E8 !important;
 | 
				
			||||||
            border-top: none;
 | 
					            border-left: 0px !important;
 | 
				
			||||||
            padding-right: 30px;
 | 
					            padding-top: 0px;
 | 
				
			||||||
            box-sizing: border-box;
 | 
					            padding: 8px !important;
 | 
				
			||||||
            width: 260px;
 | 
					 | 
				
			||||||
            /* height: 100px; */
 | 
					 | 
				
			||||||
            position: absolute;
 | 
					 | 
				
			||||||
            right: -25;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        td.invoice-total1 {
 | 
					 | 
				
			||||||
            text-align:left;
 | 
					 | 
				
			||||||
            padding: 15px 0 15px 10px;
 | 
					 | 
				
			||||||
            font-size:12px;
 | 
					 | 
				
			||||||
            line-height: 18px;
 | 
					 | 
				
			||||||
            color: #55547A;
 | 
					 | 
				
			||||||
            border-bottom:1px solid #E8E8E8;
 | 
					 | 
				
			||||||
            border-top:1px solid #E8E8E8;
 | 
					 | 
				
			||||||
            border-left:1px solid #E8E8E8;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        td.invoice-total2 {
 | 
					 | 
				
			||||||
            font-weight: 500;
 | 
					 | 
				
			||||||
            text-align: right;
 | 
					 | 
				
			||||||
            font-size:12px;
 | 
					 | 
				
			||||||
            line-height: 18px;
 | 
					 | 
				
			||||||
            padding: 15px 10px 15px 0;
 | 
					 | 
				
			||||||
            color: #5851DB;
 | 
					 | 
				
			||||||
            border-bottom:1px solid #E8E8E8;
 | 
					 | 
				
			||||||
            border-top:1px solid #E8E8E8;
 | 
					 | 
				
			||||||
            border-right:1px solid #E8E8E8;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        .inv-item {
 | 
					 | 
				
			||||||
            border-color: #d9d9d9;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        .no-border {
 | 
					 | 
				
			||||||
            border: none;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        .desc {
 | 
					 | 
				
			||||||
            font-weight: 100;
 | 
					 | 
				
			||||||
            text-align: justify;
 | 
					 | 
				
			||||||
            font-size: 10px;
 | 
					 | 
				
			||||||
            margin-bottom: 15px;
 | 
					 | 
				
			||||||
            margin-top:7px;
 | 
					 | 
				
			||||||
            color:rgba(0, 0, 0, 0.85);
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        .company-details h1 {
 | 
					 | 
				
			||||||
            margin:0;
 | 
					 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: bold;
 | 
					 | 
				
			||||||
            font-size: 15px;
 | 
					 | 
				
			||||||
            line-height: 22px;
 | 
					 | 
				
			||||||
            letter-spacing: 0.05em;
 | 
					 | 
				
			||||||
            text-align: left;
 | 
					 | 
				
			||||||
            max-width: 220px;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        .company-details h4 {
 | 
					 | 
				
			||||||
            margin:0;
 | 
					 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: 100;
 | 
					 | 
				
			||||||
            font-size: 18px;
 | 
					 | 
				
			||||||
            line-height: 25px;
 | 
					 | 
				
			||||||
            text-align: right;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        .company-details h3 {
 | 
					 | 
				
			||||||
             margin-bottom:1px;
 | 
					 | 
				
			||||||
             margin-top:0;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        tr.total td {
 | 
					 | 
				
			||||||
            border-bottom:1px solid #E8E8E8;
 | 
					 | 
				
			||||||
            border-top:1px solid #E8E8E8;
 | 
					 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        /* -- Notes -- */
 | 
				
			||||||
        .notes {
 | 
					        .notes {
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: 300;
 | 
					 | 
				
			||||||
            font-size: 12px;
 | 
					            font-size: 12px;
 | 
				
			||||||
            color: #595959;
 | 
					            color: #595959;
 | 
				
			||||||
            margin-top: 15px;
 | 
					            margin-top: 15px;
 | 
				
			||||||
@ -401,8 +310,6 @@
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .notes-label {
 | 
					        .notes-label {
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 15px;
 | 
					            font-size: 15px;
 | 
				
			||||||
            line-height: 22px;
 | 
					            line-height: 22px;
 | 
				
			||||||
            letter-spacing: 0.05em;
 | 
					            letter-spacing: 0.05em;
 | 
				
			||||||
@ -412,60 +319,113 @@
 | 
				
			|||||||
            padding-bottom: 10px;
 | 
					            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>
 | 
					    </style>
 | 
				
			||||||
</head>
 | 
					</head>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<body>
 | 
					<body>
 | 
				
			||||||
    <div class="header-table">
 | 
					    <div class="header-container">
 | 
				
			||||||
        <table width="100%">
 | 
					        <table width="100%">
 | 
				
			||||||
            <tr>
 | 
					            <tr>
 | 
				
			||||||
 | 
					                <td class="header-section-left">
 | 
				
			||||||
                    @if($logo)
 | 
					                    @if($logo)
 | 
				
			||||||
                    <td class="header-left">
 | 
					 | 
				
			||||||
                        <img class="header-logo" src="{{ $logo }}" alt="Company Logo">
 | 
					                        <img class="header-logo" src="{{ $logo }}" alt="Company Logo">
 | 
				
			||||||
                    @else
 | 
					                    @else
 | 
				
			||||||
                        @if($invoice->user->company)
 | 
					 | 
				
			||||||
                        <td class="header-left" style="padding-top:0px;">
 | 
					 | 
				
			||||||
                        <h1 class="header-logo"> {{$invoice->user->company->name}} </h1>
 | 
					                        <h1 class="header-logo"> {{$invoice->user->company->name}} </h1>
 | 
				
			||||||
                    @endif
 | 
					                    @endif
 | 
				
			||||||
                    @endif
 | 
					 | 
				
			||||||
                </td>
 | 
					                </td>
 | 
				
			||||||
                <td class="header-right company-details">
 | 
					                <td class="header-section-right company-address-container">
 | 
				
			||||||
                    @include('app.pdf.invoice.partials.company-address')
 | 
					                    @include('app.pdf.invoice.partials.company-address')
 | 
				
			||||||
                </td>
 | 
					                </td>
 | 
				
			||||||
            </tr>
 | 
					            </tr>
 | 
				
			||||||
        </table>
 | 
					        </table>
 | 
				
			||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    <hr class="header-line">
 | 
					    <hr class="header-bottom-divider">
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    <div class="wrapper">
 | 
					    <div class="content-wrapper">
 | 
				
			||||||
        <div class="address">
 | 
					        <div class="main-content">
 | 
				
			||||||
            <div class="bill-add">
 | 
					            <div class="customer-address-container">
 | 
				
			||||||
                <div style="float:left;">
 | 
					                <div class="billing-address-container">
 | 
				
			||||||
                    @include('app.pdf.invoice.partials.billing-address')
 | 
					                    @include('app.pdf.invoice.partials.billing-address')
 | 
				
			||||||
                </div>
 | 
					                </div>
 | 
				
			||||||
                @if($invoice->user->billingaddress)
 | 
					                @if($invoice->user->billingaddress)
 | 
				
			||||||
                    <div style="float:right;">
 | 
					                <div class="shipping-address-container">
 | 
				
			||||||
                @else
 | 
					                @else
 | 
				
			||||||
                    <div style="float:left;">
 | 
					                <div class="shipping-address-container--left">
 | 
				
			||||||
                @endif
 | 
					                @endif
 | 
				
			||||||
                        @include('app.pdf.invoice.partials.shipping-address')
 | 
					                        @include('app.pdf.invoice.partials.shipping-address')
 | 
				
			||||||
                    </div>
 | 
					                    </div>
 | 
				
			||||||
                    <div style="clear: both;"></div>
 | 
					                    <div style="clear: both;"></div>
 | 
				
			||||||
                </div>
 | 
					                </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            <div class="job-add">
 | 
					                <div class="invoice-details-container">
 | 
				
			||||||
                    <table>
 | 
					                    <table>
 | 
				
			||||||
                        <tr>
 | 
					                        <tr>
 | 
				
			||||||
                        <td class="textStyle1" style="text-align: left; color: #55547A">Invoice Number</td>
 | 
					                            <td class="attribute-label">Invoice Number</td>
 | 
				
			||||||
                        <td class="textStyle2">  {{$invoice->invoice_number}}</td>
 | 
					                            <td class="attribute-value">  {{$invoice->invoice_number}}</td>
 | 
				
			||||||
                        </tr>
 | 
					                        </tr>
 | 
				
			||||||
                        <tr>
 | 
					                        <tr>
 | 
				
			||||||
                        <td class="textStyle1" style="text-align: left; color: #55547A">Invoice Date </td>
 | 
					                            <td class="attribute-label">Invoice Date </td>
 | 
				
			||||||
                        <td class="textStyle2">  {{$invoice->formattedInvoiceDate}}</td>
 | 
					                            <td class="attribute-value">  {{$invoice->formattedInvoiceDate}}</td>
 | 
				
			||||||
                        </tr>
 | 
					                        </tr>
 | 
				
			||||||
                        <tr>
 | 
					                        <tr>
 | 
				
			||||||
                        <td class="textStyle1" style="text-align: left; color: #55547A">Due date</td>
 | 
					                            <td class="attribute-label">Due date</td>
 | 
				
			||||||
                        <td class="textStyle2">  {{$invoice->formattedDueDate}}</td>
 | 
					                            <td class="attribute-value">  {{$invoice->formattedDueDate}}</td>
 | 
				
			||||||
                        </tr>
 | 
					                        </tr>
 | 
				
			||||||
                    </table>
 | 
					                    </table>
 | 
				
			||||||
                </div>
 | 
					                </div>
 | 
				
			||||||
@ -474,5 +434,7 @@
 | 
				
			|||||||
            @include('app.pdf.invoice.partials.table')
 | 
					            @include('app.pdf.invoice.partials.table')
 | 
				
			||||||
            @include('app.pdf.invoice.partials.notes')
 | 
					            @include('app.pdf.invoice.partials.notes')
 | 
				
			||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
 | 
					    </div>
 | 
				
			||||||
</body>
 | 
					</body>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
</html>
 | 
					</html>
 | 
				
			||||||
 | 
				
			|||||||
@ -1,11 +1,11 @@
 | 
				
			|||||||
@if($invoice->user->billingaddress)
 | 
					@if($invoice->user->billingaddress)
 | 
				
			||||||
    <p class="bill-to">Bill To,</p>
 | 
					    <p class="billing-address-label">Bill To,</p>
 | 
				
			||||||
    @if($invoice->user->billingaddress->name)
 | 
					    @if($invoice->user->billingaddress->name)
 | 
				
			||||||
        <p class="bill-user-name">
 | 
					        <p class="billing-address-name">
 | 
				
			||||||
            {{$invoice->user->billingaddress->name}}
 | 
					            {{$invoice->user->billingaddress->name}}
 | 
				
			||||||
        </p>
 | 
					        </p>
 | 
				
			||||||
    @endif
 | 
					    @endif
 | 
				
			||||||
    <p class="bill-user-address">
 | 
					    <p class="billing-address">
 | 
				
			||||||
        @if($invoice->user->billingaddress->address_street_1)
 | 
					        @if($invoice->user->billingaddress->address_street_1)
 | 
				
			||||||
            {!! nl2br(htmlspecialchars($invoice->user->billingaddress->address_street_1)) !!}<br>
 | 
					            {!! nl2br(htmlspecialchars($invoice->user->billingaddress->address_street_1)) !!}<br>
 | 
				
			||||||
        @endif
 | 
					        @endif
 | 
				
			||||||
@ -25,7 +25,7 @@
 | 
				
			|||||||
            {{$invoice->user->billingaddress->country->name}}<br>
 | 
					            {{$invoice->user->billingaddress->country->name}}<br>
 | 
				
			||||||
        @endif
 | 
					        @endif
 | 
				
			||||||
        @if($invoice->user->billingaddress->phone)
 | 
					        @if($invoice->user->billingaddress->phone)
 | 
				
			||||||
            <p class="bill-user-phone">
 | 
					            <p class="billing-address">
 | 
				
			||||||
                Phone :{{$invoice->user->billingaddress->phone}}
 | 
					                Phone :{{$invoice->user->billingaddress->phone}}
 | 
				
			||||||
            </p>
 | 
					            </p>
 | 
				
			||||||
        @endif
 | 
					        @endif
 | 
				
			||||||
 | 
				
			|||||||
@ -3,7 +3,7 @@
 | 
				
			|||||||
@endif
 | 
					@endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@if($company_address)
 | 
					@if($company_address)
 | 
				
			||||||
    <p class="company-add">
 | 
					    <p class="company-address">
 | 
				
			||||||
        @if($company_address->addresses[0]['address_street_1'])
 | 
					        @if($company_address->addresses[0]['address_street_1'])
 | 
				
			||||||
            {!! nl2br(htmlspecialchars($company_address->addresses[0]['address_street_1'])) !!} <br>
 | 
					            {!! nl2br(htmlspecialchars($company_address->addresses[0]['address_street_1'])) !!} <br>
 | 
				
			||||||
        @endif
 | 
					        @endif
 | 
				
			||||||
 | 
				
			|||||||
@ -1,11 +1,11 @@
 | 
				
			|||||||
@if($invoice->user->shippingaddress)
 | 
					@if($invoice->user->shippingaddress)
 | 
				
			||||||
    <p class="ship-to">Ship To,</p>
 | 
					    <p class="shipping-address-label">Ship To,</p>
 | 
				
			||||||
    @if($invoice->user->shippingaddress->name)
 | 
					    @if($invoice->user->shippingaddress->name)
 | 
				
			||||||
        <p class="ship-user-name">
 | 
					        <p class="shipping-address-name">
 | 
				
			||||||
            {{$invoice->user->shippingaddress->name}}
 | 
					            {{$invoice->user->shippingaddress->name}}
 | 
				
			||||||
        </p>
 | 
					        </p>
 | 
				
			||||||
    @endif
 | 
					    @endif
 | 
				
			||||||
    <p class="ship-user-address">
 | 
					    <p class="shipping-address">
 | 
				
			||||||
        @if($invoice->user->shippingaddress->address_street_1)
 | 
					        @if($invoice->user->shippingaddress->address_street_1)
 | 
				
			||||||
            {!! nl2br(htmlspecialchars($invoice->user->shippingaddress->address_street_1)) !!}<br>
 | 
					            {!! nl2br(htmlspecialchars($invoice->user->shippingaddress->address_street_1)) !!}<br>
 | 
				
			||||||
        @endif
 | 
					        @endif
 | 
				
			||||||
@ -30,8 +30,8 @@
 | 
				
			|||||||
            {{$invoice->user->shippingaddress->country->name}}<br>
 | 
					            {{$invoice->user->shippingaddress->country->name}}<br>
 | 
				
			||||||
        @endif
 | 
					        @endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        @if($invoice->user->phone)
 | 
					        @if($invoice->user->shippingaddress->phone)
 | 
				
			||||||
            <p class="ship-user-phone">
 | 
					            <p class="shipping-address">
 | 
				
			||||||
                Phone :{{$invoice->user->shippingaddress->phone}}
 | 
					                Phone :{{$invoice->user->shippingaddress->phone}}
 | 
				
			||||||
            </p>
 | 
					            </p>
 | 
				
			||||||
        @endif
 | 
					        @endif
 | 
				
			||||||
 | 
				
			|||||||
@ -1,46 +1,49 @@
 | 
				
			|||||||
<table width="100%" class="table2" cellspacing="0" border="0">
 | 
					<table width="100%" class="items-table" cellspacing="0" border="0">
 | 
				
			||||||
    <tr class="main-table-header">
 | 
					    <tr class="item-table-heading-row">
 | 
				
			||||||
        <th width="2%" class="ItemTableHeader" style="text-align: right; color: #55547A; padding-right: 20px">#</th>
 | 
					        <th width="2%" class="item-table-heading text-right pr-20">#</th>
 | 
				
			||||||
        <th width="40%" class="ItemTableHeader" style="text-align: left; color: #55547A; padding-left: 0px">Items</th>
 | 
					        <th width="40%" class="item-table-heading text-left pl-0">Items</th>
 | 
				
			||||||
        <th class="ItemTableHeader" style="text-align: right; color: #55547A; padding-right: 20px">Quantity</th>
 | 
					        <th class="item-table-heading text-right pr-20">Quantity</th>
 | 
				
			||||||
        <th class="ItemTableHeader" style="text-align: right; color: #55547A; padding-right: 20px">Price</th>
 | 
					        <th class="item-table-heading pr-20 text-right">Price</th>
 | 
				
			||||||
        @if($invoice->discount_per_item === 'YES')
 | 
					        @if($invoice->discount_per_item === 'YES')
 | 
				
			||||||
        <th class="ItemTableHeader" style="text-align: right; color: #55547A; padding-left: 10px">Discount</th>
 | 
					        <th class="item-table-heading text-right pl-10">Discount</th>
 | 
				
			||||||
        @endif
 | 
					        @endif
 | 
				
			||||||
        <th class="ItemTableHeader" style="text-align: right; color: #55547A;">Amount</th>
 | 
					        <th class="item-table-heading text-right">Amount</th>
 | 
				
			||||||
    </tr>
 | 
					    </tr>
 | 
				
			||||||
    @php
 | 
					    @php
 | 
				
			||||||
        $index = 1
 | 
					        $index = 1
 | 
				
			||||||
    @endphp
 | 
					    @endphp
 | 
				
			||||||
    @foreach ($invoice->items as $item)
 | 
					    @foreach ($invoice->items as $item)
 | 
				
			||||||
        <tr class="item-details">
 | 
					        <tr class="item-row">
 | 
				
			||||||
            <td
 | 
					            <td
 | 
				
			||||||
                class="inv-item items"
 | 
					                class="item-cell text-right pr-20"
 | 
				
			||||||
                style="text-align: right; color: #040405; padding-right: 20px; vertical-align: top;"
 | 
					                style="vertical-align: top;"
 | 
				
			||||||
            >
 | 
					            >
 | 
				
			||||||
                {{$index}}
 | 
					                {{$index}}
 | 
				
			||||||
            </td>
 | 
					            </td>
 | 
				
			||||||
            <td
 | 
					            <td
 | 
				
			||||||
                class="inv-item items"
 | 
					                class="item-cell text-left pl-0"
 | 
				
			||||||
                style="text-align: left; color: #040405;padding-left: 0px"
 | 
					                style="vertical-align: top;"
 | 
				
			||||||
            >
 | 
					            >
 | 
				
			||||||
                <span>{{ $item->name }}</span><br>
 | 
					                <span>{{ $item->name }}</span><br>
 | 
				
			||||||
                <span style="text-align: left; color: #595959; font-size: 9px; font-weight:300; line-height: 12px;">{!! nl2br(htmlspecialchars($item->description)) !!}</span>
 | 
					                <span class="item-description">{!! nl2br(htmlspecialchars($item->description)) !!}</span>
 | 
				
			||||||
            </td>
 | 
					            </td>
 | 
				
			||||||
            <td
 | 
					            <td
 | 
				
			||||||
                class="inv-item items"
 | 
					                class="item-cell pr-20 text-right"
 | 
				
			||||||
                style="text-align: right; color: #040405; padding-right: 20px"
 | 
					                style="vertical-align: top;"
 | 
				
			||||||
            >
 | 
					            >
 | 
				
			||||||
                {{$item->quantity}}
 | 
					                {{$item->quantity}}
 | 
				
			||||||
            </td>
 | 
					            </td>
 | 
				
			||||||
            <td
 | 
					            <td
 | 
				
			||||||
                class="inv-item items"
 | 
					                class="item-cell text-right pr-20"
 | 
				
			||||||
                style="text-align: right; color: #040405; padding-right: 20px"
 | 
					                style="vertical-align: top;"
 | 
				
			||||||
            >
 | 
					            >
 | 
				
			||||||
                {!! format_money_pdf($item->price, $invoice->user->currency) !!}
 | 
					                {!! format_money_pdf($item->price, $invoice->user->currency) !!}
 | 
				
			||||||
            </td>
 | 
					            </td>
 | 
				
			||||||
            @if($invoice->discount_per_item === 'YES')
 | 
					            @if($invoice->discount_per_item === 'YES')
 | 
				
			||||||
                <td class="inv-item items" style="text-align: right; color: #040405; padding-left: 10px">
 | 
					                <td
 | 
				
			||||||
 | 
					                    class="item-cell text-right pl-10"
 | 
				
			||||||
 | 
					                    style="vertical-align: top;"
 | 
				
			||||||
 | 
					                >
 | 
				
			||||||
                    @if($item->discount_type === 'fixed')
 | 
					                    @if($item->discount_type === 'fixed')
 | 
				
			||||||
                        {!! format_money_pdf($item->discount_val, $invoice->user->currency) !!}
 | 
					                        {!! format_money_pdf($item->discount_val, $invoice->user->currency) !!}
 | 
				
			||||||
                    @endif
 | 
					                    @endif
 | 
				
			||||||
@ -50,8 +53,8 @@
 | 
				
			|||||||
                </td>
 | 
					                </td>
 | 
				
			||||||
            @endif
 | 
					            @endif
 | 
				
			||||||
            <td
 | 
					            <td
 | 
				
			||||||
                class="inv-item items"
 | 
					                class="item-cell text-right"
 | 
				
			||||||
                style="text-align: right; color: #040405;"
 | 
					                style="vertical-align: top;"
 | 
				
			||||||
            >
 | 
					            >
 | 
				
			||||||
                {!! format_money_pdf($item->total, $invoice->user->currency) !!}
 | 
					                {!! format_money_pdf($item->total, $invoice->user->currency) !!}
 | 
				
			||||||
            </td>
 | 
					            </td>
 | 
				
			||||||
@ -62,22 +65,24 @@
 | 
				
			|||||||
    @endforeach
 | 
					    @endforeach
 | 
				
			||||||
</table>
 | 
					</table>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<hr class="items-table-hr">
 | 
					<hr class="item-cell-table-hr">
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<table width="100%" cellspacing="0px" style="margin-left:420px; margin-top: 10px" border="0" class="table3 @if(count($invoice->items) > 12) page-break @endif">
 | 
					<div class="total-display-container">
 | 
				
			||||||
 | 
					    <table width="100%" cellspacing="0px" border="0" class="total-display-table @if(count($invoice->items) > 12) page-break @endif">
 | 
				
			||||||
        <tr>
 | 
					        <tr>
 | 
				
			||||||
        <td class="no-border" style="color: #55547A; padding-left:10px;  font-size:12px;">Subtotal</td>
 | 
					            <td class="border-0 total-table-attribute-label">Subtotal</td>
 | 
				
			||||||
        <td class="no-border items padd2"
 | 
					            <td class="border-0 item-cell py-2 total-table-attribute-value">
 | 
				
			||||||
            style="padding-right:10px; text-align: right;  font-size:12px; color: #040405; font-weight: 500;">{!! format_money_pdf($invoice->sub_total, $invoice->user->currency) !!}</td>
 | 
					                {!! format_money_pdf($invoice->sub_total, $invoice->user->currency) !!}
 | 
				
			||||||
 | 
					            </td>
 | 
				
			||||||
        </tr>
 | 
					        </tr>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        @if ($invoice->tax_per_item === 'YES')
 | 
					        @if ($invoice->tax_per_item === 'YES')
 | 
				
			||||||
            @for ($i = 0; $i < count($labels); $i++)
 | 
					            @for ($i = 0; $i < count($labels); $i++)
 | 
				
			||||||
                <tr>
 | 
					                <tr>
 | 
				
			||||||
                <td class="no-border" style="padding-left:10px; text-align:left; font-size:12px;  color: #55547A;">
 | 
					                    <td class="border-0 total-table-attribute-label">
 | 
				
			||||||
                        {{$labels[$i]}}
 | 
					                        {{$labels[$i]}}
 | 
				
			||||||
                    </td>
 | 
					                    </td>
 | 
				
			||||||
                <td class="no-border items padd2" style="padding-right:10px; font-weight: 500; text-align: right; font-size:12px;  color: #040405">
 | 
					                    <td class="border-0 item-cell py-2 total-table-attribute-value">
 | 
				
			||||||
                        {!! format_money_pdf($taxes[$i], $invoice->user->currency) !!}
 | 
					                        {!! format_money_pdf($taxes[$i], $invoice->user->currency) !!}
 | 
				
			||||||
                    </td>
 | 
					                    </td>
 | 
				
			||||||
                </tr>
 | 
					                </tr>
 | 
				
			||||||
@ -85,10 +90,10 @@
 | 
				
			|||||||
        @else
 | 
					        @else
 | 
				
			||||||
            @foreach ($invoice->taxes as $tax)
 | 
					            @foreach ($invoice->taxes as $tax)
 | 
				
			||||||
                <tr>
 | 
					                <tr>
 | 
				
			||||||
                <td class="no-border" style="padding-left:10px; text-align:left; font-size:12px;  color: #55547A;">
 | 
					                    <td class="border-0 total-table-attribute-label">
 | 
				
			||||||
                        {{$tax->name.' ('.$tax->percent.'%)'}}
 | 
					                        {{$tax->name.' ('.$tax->percent.'%)'}}
 | 
				
			||||||
                    </td>
 | 
					                    </td>
 | 
				
			||||||
                <td class="no-border items padd2" style="padding-right:10px; font-weight: 500; text-align: right; font-size:12px;  color: #040405">
 | 
					                    <td class="border-0 item-cell py-2 total-table-attribute-value">
 | 
				
			||||||
                        {!! format_money_pdf($tax->amount, $invoice->user->currency) !!}
 | 
					                        {!! format_money_pdf($tax->amount, $invoice->user->currency) !!}
 | 
				
			||||||
                    </td>
 | 
					                    </td>
 | 
				
			||||||
                </tr>
 | 
					                </tr>
 | 
				
			||||||
@ -97,7 +102,7 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        @if ($invoice->discount_per_item === 'NO')
 | 
					        @if ($invoice->discount_per_item === 'NO')
 | 
				
			||||||
            <tr>
 | 
					            <tr>
 | 
				
			||||||
            <td class="no-border" style="padding-left:10px; text-align:left; font-size:12px; color: #55547A;">
 | 
					                <td class="border-0 total-table-attribute-label">
 | 
				
			||||||
                    @if($invoice->discount_type === 'fixed')
 | 
					                    @if($invoice->discount_type === 'fixed')
 | 
				
			||||||
                        Discount
 | 
					                        Discount
 | 
				
			||||||
                    @endif
 | 
					                    @endif
 | 
				
			||||||
@ -105,7 +110,7 @@
 | 
				
			|||||||
                        Discount ({{$invoice->discount}}%)
 | 
					                        Discount ({{$invoice->discount}}%)
 | 
				
			||||||
                    @endif
 | 
					                    @endif
 | 
				
			||||||
                </td>
 | 
					                </td>
 | 
				
			||||||
            <td class="no-border items padd2" style="padding-right:10px; font-weight: 500; text-align: right; font-size:12px;  color: #040405">
 | 
					                <td class="border-0 item-cell py-2 total-table-attribute-value" >
 | 
				
			||||||
                    @if($invoice->discount_type === 'fixed')
 | 
					                    @if($invoice->discount_type === 'fixed')
 | 
				
			||||||
                        {!! format_money_pdf($invoice->discount_val, $invoice->user->currency) !!}
 | 
					                        {!! format_money_pdf($invoice->discount_val, $invoice->user->currency) !!}
 | 
				
			||||||
                    @endif
 | 
					                    @endif
 | 
				
			||||||
@ -116,20 +121,18 @@
 | 
				
			|||||||
            </tr>
 | 
					            </tr>
 | 
				
			||||||
        @endif
 | 
					        @endif
 | 
				
			||||||
        <tr>
 | 
					        <tr>
 | 
				
			||||||
        <td style="padding:3px 0px"></td>
 | 
					            <td class="py-3"></td>
 | 
				
			||||||
        <td style="padding:3px 0px"></td>
 | 
					            <td class="py-3"></td>
 | 
				
			||||||
        </tr>
 | 
					        </tr>
 | 
				
			||||||
        <tr>
 | 
					        <tr>
 | 
				
			||||||
        <td class="no-border total-border-left"
 | 
					            <td class="border-0 total-border-left total-table-attribute-label">
 | 
				
			||||||
            style="padding-left:10px; padding-bottom:10px; text-align:left; padding-top:20px; font-size:12px;  color: #55547A;"
 | 
					                Total
 | 
				
			||||||
        >
 | 
					 | 
				
			||||||
            <label class="total-bottom"> Total </label>
 | 
					 | 
				
			||||||
            </td>
 | 
					            </td>
 | 
				
			||||||
            <td
 | 
					            <td
 | 
				
			||||||
            class="no-border total-border-right items padd8"
 | 
					                class="border-0 total-border-right item-cell py-8 total-table-attribute-value text-primary"
 | 
				
			||||||
            style="padding-right:10px; font-weight: 500; text-align: right; font-size:12px;  padding-top:20px; color: #5851DB"
 | 
					 | 
				
			||||||
            >
 | 
					            >
 | 
				
			||||||
                {!! format_money_pdf($invoice->total, $invoice->user->currency)!!}
 | 
					                {!! format_money_pdf($invoice->total, $invoice->user->currency)!!}
 | 
				
			||||||
            </td>
 | 
					            </td>
 | 
				
			||||||
        </tr>
 | 
					        </tr>
 | 
				
			||||||
</table>
 | 
					    </table>
 | 
				
			||||||
 | 
					</div>
 | 
				
			||||||
 | 
				
			|||||||
@ -1,11 +1,11 @@
 | 
				
			|||||||
@if($payment->user->billingaddress)
 | 
					@if($payment->user->billingaddress)
 | 
				
			||||||
    <p class="bill-to">Received From:</p>
 | 
					    <p class="billing-address-label">Received From:</p>
 | 
				
			||||||
    @if($payment->user->billingaddress->name)
 | 
					    @if($payment->user->billingaddress->name)
 | 
				
			||||||
        <p class="bill-user-name">
 | 
					        <p class="billing-address-name">
 | 
				
			||||||
            {{$payment->user->billingaddress->name}}
 | 
					            {{$payment->user->billingaddress->name}}
 | 
				
			||||||
        </p>
 | 
					        </p>
 | 
				
			||||||
    @endif
 | 
					    @endif
 | 
				
			||||||
    <p class="bill-user-address">
 | 
					    <p class="billing-address">
 | 
				
			||||||
        @if($payment->user->billingaddress->address_street_1)
 | 
					        @if($payment->user->billingaddress->address_street_1)
 | 
				
			||||||
            {!! nl2br(htmlspecialchars($payment->user->billingaddress->address_street_1)) !!}<br>
 | 
					            {!! nl2br(htmlspecialchars($payment->user->billingaddress->address_street_1)) !!}<br>
 | 
				
			||||||
        @endif
 | 
					        @endif
 | 
				
			||||||
@ -25,7 +25,7 @@
 | 
				
			|||||||
            {{$payment->user->billingaddress->country->name}}<br>
 | 
					            {{$payment->user->billingaddress->country->name}}<br>
 | 
				
			||||||
        @endif
 | 
					        @endif
 | 
				
			||||||
        @if($payment->user->billingaddress->phone)
 | 
					        @if($payment->user->billingaddress->phone)
 | 
				
			||||||
            <p class="bill-user-phone">
 | 
					            <p class="billing-address">
 | 
				
			||||||
                Phone :{{$payment->user->billingaddress->phone}}
 | 
					                Phone :{{$payment->user->billingaddress->phone}}
 | 
				
			||||||
            </p>
 | 
					            </p>
 | 
				
			||||||
        @endif
 | 
					        @endif
 | 
				
			||||||
 | 
				
			|||||||
@ -3,7 +3,7 @@
 | 
				
			|||||||
@endif
 | 
					@endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@if($company_address)
 | 
					@if($company_address)
 | 
				
			||||||
    <p class="company-add">
 | 
					    <p class="company-address">
 | 
				
			||||||
        @if($company_address->addresses[0]['address_street_1'])
 | 
					        @if($company_address->addresses[0]['address_street_1'])
 | 
				
			||||||
            {!! nl2br(htmlspecialchars($company_address->addresses[0]['address_street_1'])) !!} <br>
 | 
					            {!! nl2br(htmlspecialchars($company_address->addresses[0]['address_street_1'])) !!} <br>
 | 
				
			||||||
        @endif
 | 
					        @endif
 | 
				
			||||||
 | 
				
			|||||||
@ -1,11 +1,11 @@
 | 
				
			|||||||
@if($payment->user->shippingaddress)
 | 
					@if($payment->user->shippingaddress)
 | 
				
			||||||
    <p class="ship-to">Ship To,</p>
 | 
					    <p class="shipping-address-label">Ship To,</p>
 | 
				
			||||||
    @if($payment->user->shippingaddress->name)
 | 
					    @if($payment->user->shippingaddress->name)
 | 
				
			||||||
        <p class="ship-user-name">
 | 
					        <p class="shipping-address-name">
 | 
				
			||||||
            {{$payment->user->shippingaddress->name}}
 | 
					            {{$payment->user->shippingaddress->name}}
 | 
				
			||||||
        </p>
 | 
					        </p>
 | 
				
			||||||
    @endif
 | 
					    @endif
 | 
				
			||||||
    <p class="ship-user-address">
 | 
					    <p class="shipping-address">
 | 
				
			||||||
        @if($payment->user->shippingaddress->address_street_1)
 | 
					        @if($payment->user->shippingaddress->address_street_1)
 | 
				
			||||||
            {!! nl2br(htmlspecialchars($payment->user->shippingaddress->address_street_1)) !!}<br>
 | 
					            {!! nl2br(htmlspecialchars($payment->user->shippingaddress->address_street_1)) !!}<br>
 | 
				
			||||||
        @endif
 | 
					        @endif
 | 
				
			||||||
@ -31,7 +31,7 @@
 | 
				
			|||||||
        @endif
 | 
					        @endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        @if($payment->user->phone)
 | 
					        @if($payment->user->phone)
 | 
				
			||||||
            <p class="ship-user-phone">
 | 
					            <p class="shipping-address">
 | 
				
			||||||
                Phone :{{$payment->user->shippingaddress->phone}}
 | 
					                Phone :{{$payment->user->shippingaddress->phone}}
 | 
				
			||||||
            </p>
 | 
					            </p>
 | 
				
			||||||
        @endif
 | 
					        @endif
 | 
				
			||||||
 | 
				
			|||||||
@ -2,10 +2,10 @@
 | 
				
			|||||||
<html>
 | 
					<html>
 | 
				
			||||||
<head>
 | 
					<head>
 | 
				
			||||||
    <title>Invoice</title>
 | 
					    <title>Invoice</title>
 | 
				
			||||||
    {{-- <link href="https://fonts.googleapis.com/css?family=Poppins&display=swap" rel="stylesheet"> --}}
 | 
					 | 
				
			||||||
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
 | 
					    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    <style type="text/css">
 | 
					    <style type="text/css">
 | 
				
			||||||
 | 
					        /* -- Base -- */
 | 
				
			||||||
        body {
 | 
					        body {
 | 
				
			||||||
            font-family: "DejaVu Sans";
 | 
					            font-family: "DejaVu Sans";
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
@ -13,6 +13,7 @@
 | 
				
			|||||||
        html {
 | 
					        html {
 | 
				
			||||||
            margin: 0px;
 | 
					            margin: 0px;
 | 
				
			||||||
            padding: 0px;
 | 
					            padding: 0px;
 | 
				
			||||||
 | 
					            margin-top: 50px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        table {
 | 
					        table {
 | 
				
			||||||
            border-collapse: collapse;
 | 
					            border-collapse: collapse;
 | 
				
			||||||
@ -27,339 +28,48 @@
 | 
				
			|||||||
            width: 100%;
 | 
					            width: 100%;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .header-left {
 | 
					        /* -- Heeader -- */
 | 
				
			||||||
            padding-top: 45px;
 | 
					
 | 
				
			||||||
            padding-bottom: 45px;
 | 
					        .header-container {
 | 
				
			||||||
            padding-left: 30px;
 | 
					 | 
				
			||||||
            display:inline-block;
 | 
					 | 
				
			||||||
            width:30%;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        .header-table {
 | 
					 | 
				
			||||||
            position: absolute;
 | 
					            position: absolute;
 | 
				
			||||||
            width: 100%;
 | 
					            width: 100%;
 | 
				
			||||||
            height: 150px;
 | 
					            height: 150px;
 | 
				
			||||||
            left: 0px;
 | 
					            left: 0px;
 | 
				
			||||||
            top: -60px;
 | 
					            top: -60px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .header-section-left {
 | 
				
			||||||
 | 
					            padding-top: 45px;
 | 
				
			||||||
 | 
					            padding-bottom: 45px;
 | 
				
			||||||
 | 
					            padding-left: 30px;
 | 
				
			||||||
 | 
					            display:inline-block;
 | 
				
			||||||
 | 
					            width:30%;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .header-logo {
 | 
					        .header-logo {
 | 
				
			||||||
            position: absolute;
 | 
					            position: absolute;
 | 
				
			||||||
            height: 50px;
 | 
					            height: 50px;
 | 
				
			||||||
            text-transform: capitalize;
 | 
					            text-transform: capitalize;
 | 
				
			||||||
            color: #817AE3;
 | 
					            color: #817AE3;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        .header-right {
 | 
					        .header-section-right {
 | 
				
			||||||
            display:inline-block;
 | 
					            display:inline-block;
 | 
				
			||||||
            position: absolute;
 | 
					            position: absolute;
 | 
				
			||||||
            right:0;
 | 
					            right:0;
 | 
				
			||||||
            padding: 15px 30px 15px 0px;
 | 
					            padding: 15px 30px 15px 0px;
 | 
				
			||||||
            float: right;
 | 
					            float: right;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        .inv-flex{
 | 
					
 | 
				
			||||||
            display:flex;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        .inv-data{
 | 
					 | 
				
			||||||
            text-align:right;
 | 
					 | 
				
			||||||
            margin-right:120px;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        .inv-value{
 | 
					 | 
				
			||||||
            text-align:left;
 | 
					 | 
				
			||||||
            margin-left:160px;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        .header {
 | 
					        .header {
 | 
				
			||||||
            font-size: 20px;
 | 
					            font-size: 20px;
 | 
				
			||||||
            color: rgba(0, 0, 0, 0.7);
 | 
					            color: rgba(0, 0, 0, 0.7);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .TextColor1 {
 | 
					        /* -- Company Address -- */
 | 
				
			||||||
            font-size: 16px;
 | 
					 | 
				
			||||||
            color: rgba(0, 0, 0, 0.5);
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        @page {
 | 
					 | 
				
			||||||
            margin-top: 60px !important;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        .wrapper {
 | 
					 | 
				
			||||||
           display: block;
 | 
					 | 
				
			||||||
           height: 200px;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        .address {
 | 
					 | 
				
			||||||
            display: inline-block;
 | 
					 | 
				
			||||||
            padding-top: 20px
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        .bill-add {
 | 
					 | 
				
			||||||
            display: block;
 | 
					 | 
				
			||||||
            float:left;
 | 
					 | 
				
			||||||
            width:40%;
 | 
					 | 
				
			||||||
            padding: 0 0 0 30px;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        .company {
 | 
					 | 
				
			||||||
            padding-left: 30px;
 | 
					 | 
				
			||||||
            display: inline;
 | 
					 | 
				
			||||||
            float:left;
 | 
					 | 
				
			||||||
            width:30%;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        .company h1 {
 | 
					 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: bold;
 | 
					 | 
				
			||||||
            font-size: 18px;
 | 
					 | 
				
			||||||
            line-height: 22px;
 | 
					 | 
				
			||||||
            letter-spacing: 0.05em;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        .company-add {
 | 
					 | 
				
			||||||
            text-align: left;
 | 
					 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 10px;
 | 
					 | 
				
			||||||
            line-height: 15px;
 | 
					 | 
				
			||||||
            color: #595959;
 | 
					 | 
				
			||||||
            margin: 0px;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
         /* -------------------------- */
 | 
					 | 
				
			||||||
        /* shipping style */
 | 
					 | 
				
			||||||
        .ship-to {
 | 
					 | 
				
			||||||
            padding-top: 5px;
 | 
					 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 12px;
 | 
					 | 
				
			||||||
            line-height: 18px;
 | 
					 | 
				
			||||||
            margin-bottom: 0px;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        .ship-user-name {
 | 
					 | 
				
			||||||
            padding: 0px;
 | 
					 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 15px;
 | 
					 | 
				
			||||||
            line-height: 22px;
 | 
					 | 
				
			||||||
            margin: 0px;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        .ship-user-address {
 | 
					 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 10px;
 | 
					 | 
				
			||||||
            line-height: 15px;
 | 
					 | 
				
			||||||
            color: #595959;
 | 
					 | 
				
			||||||
            margin: 0px;
 | 
					 | 
				
			||||||
            width: 160px;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        .ship-user-phone {
 | 
					 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 10px;
 | 
					 | 
				
			||||||
            line-height: 15px;
 | 
					 | 
				
			||||||
            color: #595959;
 | 
					 | 
				
			||||||
            margin: 0px;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
         /* -------------------------- */
 | 
					 | 
				
			||||||
        /* billing style */
 | 
					 | 
				
			||||||
        .bill-to {
 | 
					 | 
				
			||||||
            padding-top: 5px;
 | 
					 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 12px;
 | 
					 | 
				
			||||||
            line-height: 18px;
 | 
					 | 
				
			||||||
            margin-bottom: 0px;
 | 
					 | 
				
			||||||
            color: #55547A;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        .bill-user-name {
 | 
					 | 
				
			||||||
            padding: 0px;
 | 
					 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 15px;
 | 
					 | 
				
			||||||
            line-height: 22px;
 | 
					 | 
				
			||||||
            margin: 0px;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        .bill-user-address {
 | 
					 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 10px;
 | 
					 | 
				
			||||||
            line-height: 15px;
 | 
					 | 
				
			||||||
            color: #595959;
 | 
					 | 
				
			||||||
            margin:0px;
 | 
					 | 
				
			||||||
            width: 160px;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        .bill-user-phone {
 | 
					 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 10px;
 | 
					 | 
				
			||||||
            line-height: 15px;
 | 
					 | 
				
			||||||
            color: #595959;
 | 
					 | 
				
			||||||
            margin: 0px;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        .job-add {
 | 
					 | 
				
			||||||
            display: inline;
 | 
					 | 
				
			||||||
            position: absolute;
 | 
					 | 
				
			||||||
            float: right;
 | 
					 | 
				
			||||||
            width: 40%;
 | 
					 | 
				
			||||||
            height: 120px;
 | 
					 | 
				
			||||||
            padding: 20px 30px 0 0;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        .amount-due {
 | 
					 | 
				
			||||||
            background-color: #f2f2f2;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        .textRight {
 | 
					 | 
				
			||||||
            text-align: right;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        .textLeft {
 | 
					 | 
				
			||||||
            text-align: left;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        .textStyle1 {
 | 
					 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 12px;
 | 
					 | 
				
			||||||
            line-height: 18px;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        .textStyle2 {
 | 
					 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 12px;
 | 
					 | 
				
			||||||
            line-height: 18px;
 | 
					 | 
				
			||||||
            text-align: right;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        .main-table-header td {
 | 
					 | 
				
			||||||
            padding: 10px;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        .main-table-header {
 | 
					 | 
				
			||||||
            border-bottom: 1px solid red;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        tr.main-table-header th {
 | 
					 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: 600;
 | 
					 | 
				
			||||||
            font-size: 12px;
 | 
					 | 
				
			||||||
            line-height: 18px;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        tr.item-details td {
 | 
					 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 12px;
 | 
					 | 
				
			||||||
            line-height: 18px;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        .table2 {
 | 
					 | 
				
			||||||
            margin-top: 188px;
 | 
					 | 
				
			||||||
            border-bottom: 1px solid #EAF1FB;
 | 
					 | 
				
			||||||
            padding: 0px 30px 0 30px;
 | 
					 | 
				
			||||||
            page-break-before: avoid;
 | 
					 | 
				
			||||||
            page-break-after: auto;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        .table2 hr {
 | 
					 | 
				
			||||||
            height:0.1px;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        .ItemTableHeader {
 | 
					 | 
				
			||||||
            font-size: 13.5;
 | 
					 | 
				
			||||||
            text-align: center;
 | 
					 | 
				
			||||||
            color: rgba(0, 0, 0, 0.85);
 | 
					 | 
				
			||||||
            padding: 5px;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        .items {
 | 
					 | 
				
			||||||
            font-size: 13;
 | 
					 | 
				
			||||||
            color: rgba(0, 0, 0, 0.6);
 | 
					 | 
				
			||||||
            text-align: center;
 | 
					 | 
				
			||||||
            padding: 5px;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        .note-header {
 | 
					 | 
				
			||||||
            font-size: 13;
 | 
					 | 
				
			||||||
            color: rgba(0, 0, 0, 0.6);
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        .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 {
 | 
					 | 
				
			||||||
            border: 1px solid #EAF1FB;
 | 
					 | 
				
			||||||
            border-top: none;
 | 
					 | 
				
			||||||
            box-sizing: border-box;
 | 
					 | 
				
			||||||
            width: 630px;
 | 
					 | 
				
			||||||
            page-break-inside: avoid;
 | 
					 | 
				
			||||||
            page-break-before: auto;
 | 
					 | 
				
			||||||
            page-break-after: auto;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        .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;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        td.invoice-total1 {
 | 
					 | 
				
			||||||
            text-align:left;
 | 
					 | 
				
			||||||
            padding: 15px 0 15px 10px;
 | 
					 | 
				
			||||||
            font-size:12px;
 | 
					 | 
				
			||||||
            line-height: 18px;
 | 
					 | 
				
			||||||
            color: #55547A;
 | 
					 | 
				
			||||||
            border-bottom:1px solid #E8E8E8;
 | 
					 | 
				
			||||||
            border-top:1px solid #E8E8E8;
 | 
					 | 
				
			||||||
            border-left:1px solid #E8E8E8;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        td.invoice-total2 {
 | 
					 | 
				
			||||||
            font-weight: 500;
 | 
					 | 
				
			||||||
            text-align: right;
 | 
					 | 
				
			||||||
            font-size:12px;
 | 
					 | 
				
			||||||
            line-height: 18px;
 | 
					 | 
				
			||||||
            padding: 15px 10px 15px 0;
 | 
					 | 
				
			||||||
            color: #5851DB;
 | 
					 | 
				
			||||||
            border-bottom:1px solid #E8E8E8;
 | 
					 | 
				
			||||||
            border-top:1px solid #E8E8E8;
 | 
					 | 
				
			||||||
            border-right:1px solid #E8E8E8;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        .inv-item {
 | 
					 | 
				
			||||||
            border-color: #d9d9d9;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        .no-border {
 | 
					 | 
				
			||||||
            border: none;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        .desc {
 | 
					 | 
				
			||||||
            font-weight: 100;
 | 
					 | 
				
			||||||
            text-align: justify;
 | 
					 | 
				
			||||||
            font-size: 10px;
 | 
					 | 
				
			||||||
            margin-bottom: 15px;
 | 
					 | 
				
			||||||
            margin-top:7px;
 | 
					 | 
				
			||||||
            color:rgba(0, 0, 0, 0.85);
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        .company-details h1 {
 | 
					        .company-details h1 {
 | 
				
			||||||
            margin:0;
 | 
					            margin:0;
 | 
				
			||||||
            font-style: normal;
 | 
					
 | 
				
			||||||
            font-weight: bold;
 | 
					            font-weight: bold;
 | 
				
			||||||
            font-size: 15px;
 | 
					            font-size: 15px;
 | 
				
			||||||
            line-height: 22px;
 | 
					            line-height: 22px;
 | 
				
			||||||
@ -367,26 +77,117 @@
 | 
				
			|||||||
            text-align: left;
 | 
					            text-align: left;
 | 
				
			||||||
            max-width: 220px;
 | 
					            max-width: 220px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        .company-details h4 {
 | 
					
 | 
				
			||||||
            margin:0;
 | 
					        .company-address{
 | 
				
			||||||
            font-style: normal;
 | 
					            text-align: left;
 | 
				
			||||||
            font-weight: 100;
 | 
					            font-size: 10px;
 | 
				
			||||||
            font-size: 18px;
 | 
					            line-height: 15px;
 | 
				
			||||||
            line-height: 25px;
 | 
					            color: #595959;
 | 
				
			||||||
            text-align: right;
 | 
					            margin: 0px;
 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        .company-details h3 {
 | 
					 | 
				
			||||||
             margin-bottom:1px;
 | 
					 | 
				
			||||||
             margin-top:0;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        tr.total td {
 | 
					 | 
				
			||||||
            border-bottom:1px solid #E8E8E8;
 | 
					 | 
				
			||||||
            border-top:1px solid #E8E8E8;
 | 
					 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .content-wrapper {
 | 
				
			||||||
 | 
					           display: block;
 | 
				
			||||||
 | 
					           height: 200px;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .main-content {
 | 
				
			||||||
 | 
					            display: inline-block;
 | 
				
			||||||
 | 
					            padding-top: 20px
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        /* -- Customer Address -- */
 | 
				
			||||||
 | 
					        .customer-address-container {
 | 
				
			||||||
 | 
					            display: block;
 | 
				
			||||||
 | 
					            float:left;
 | 
				
			||||||
 | 
					            width:40%;
 | 
				
			||||||
 | 
					            padding: 0 0 0 30px;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        /* -- Shipping -- */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .shipping-address-label {
 | 
				
			||||||
 | 
					            padding-top: 5px;
 | 
				
			||||||
 | 
					            font-size: 12px;
 | 
				
			||||||
 | 
					            line-height: 18px;
 | 
				
			||||||
 | 
					            margin-bottom: 0px;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .shipping-address-name {
 | 
				
			||||||
 | 
					            padding: 0px;
 | 
				
			||||||
 | 
					            font-size: 15px;
 | 
				
			||||||
 | 
					            line-height: 22px;
 | 
				
			||||||
 | 
					            margin: 0px;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .shipping-address {
 | 
				
			||||||
 | 
					            font-size: 10px;
 | 
				
			||||||
 | 
					            line-height: 15px;
 | 
				
			||||||
 | 
					            color: #595959;
 | 
				
			||||||
 | 
					            margin: 0px;
 | 
				
			||||||
 | 
					            width: 160px;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        /* -- Billing -- */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .billing-address-container {
 | 
				
			||||||
 | 
					            float: left;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .billing-address-container--right {
 | 
				
			||||||
 | 
					            float: right;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .billing-address-label {
 | 
				
			||||||
 | 
					            padding-top: 5px;
 | 
				
			||||||
 | 
					            font-size: 12px;
 | 
				
			||||||
 | 
					            line-height: 18px;
 | 
				
			||||||
 | 
					            margin-bottom: 0px;
 | 
				
			||||||
 | 
					            color: #55547A;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .billing-address-name {
 | 
				
			||||||
 | 
					            padding: 0px;
 | 
				
			||||||
 | 
					            font-size: 15px;
 | 
				
			||||||
 | 
					            line-height: 22px;
 | 
				
			||||||
 | 
					            margin: 0px;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .billing-address {
 | 
				
			||||||
 | 
					            font-size: 10px;
 | 
				
			||||||
 | 
					            line-height: 15px;
 | 
				
			||||||
 | 
					            color: #595959;
 | 
				
			||||||
 | 
					            margin:0px;
 | 
				
			||||||
 | 
					            width: 160px;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        /* -- Payment Details -- */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .payment-details-container {
 | 
				
			||||||
 | 
					            display: inline;
 | 
				
			||||||
 | 
					            position: absolute;
 | 
				
			||||||
 | 
					            float: right;
 | 
				
			||||||
 | 
					            width: 40%;
 | 
				
			||||||
 | 
					            height: 120px;
 | 
				
			||||||
 | 
					            padding: 20px 30px 0 0;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .attribute-label {
 | 
				
			||||||
 | 
					            font-size: 12px;
 | 
				
			||||||
 | 
					            line-height: 18px;
 | 
				
			||||||
 | 
					            text-align: left;
 | 
				
			||||||
 | 
					            color: #55547A
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .attribute-value {
 | 
				
			||||||
 | 
					            font-size: 12px;
 | 
				
			||||||
 | 
					            line-height: 18px;
 | 
				
			||||||
 | 
					            text-align: right;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        /* -- Notes -- */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .notes {
 | 
					        .notes {
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: 300;
 | 
					 | 
				
			||||||
            font-size: 12px;
 | 
					            font-size: 12px;
 | 
				
			||||||
            color: #595959;
 | 
					            color: #595959;
 | 
				
			||||||
            margin-top: 15px;
 | 
					            margin-top: 15px;
 | 
				
			||||||
@ -397,8 +198,6 @@
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .notes-label {
 | 
					        .notes-label {
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 15px;
 | 
					            font-size: 15px;
 | 
				
			||||||
            line-height: 22px;
 | 
					            line-height: 22px;
 | 
				
			||||||
            letter-spacing: 0.05em;
 | 
					            letter-spacing: 0.05em;
 | 
				
			||||||
@ -408,7 +207,7 @@
 | 
				
			|||||||
            padding-bottom: 10px;
 | 
					            padding-bottom: 10px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .content-header {
 | 
					        .content-heading {
 | 
				
			||||||
            margin-top: 120px;
 | 
					            margin-top: 120px;
 | 
				
			||||||
            width: 100%;
 | 
					            width: 100%;
 | 
				
			||||||
            text-align: center;
 | 
					            text-align: center;
 | 
				
			||||||
@ -419,14 +218,17 @@
 | 
				
			|||||||
            margin:  0 0 0 0;
 | 
					            margin:  0 0 0 0;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .content-header span {
 | 
					        .content-heading span {
 | 
				
			||||||
            font-weight: 500;
 | 
					            font-weight: 400;
 | 
				
			||||||
            font-size: 14px;
 | 
					            font-size: 14px;
 | 
				
			||||||
            line-height: 25px;
 | 
					            line-height: 25px;
 | 
				
			||||||
 | 
					            padding-bottom: 5px;
 | 
				
			||||||
            border-bottom: 1px solid #B9C1D1;
 | 
					            border-bottom: 1px solid #B9C1D1;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .total-amount {
 | 
					        /* -- Total Display Box -- */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .total-display-box {
 | 
				
			||||||
            width: 315px;
 | 
					            width: 315px;
 | 
				
			||||||
            display: block;
 | 
					            display: block;
 | 
				
			||||||
            margin-right: 30px;
 | 
					            margin-right: 30px;
 | 
				
			||||||
@ -437,7 +239,7 @@
 | 
				
			|||||||
            padding: 12px 15px 15px 15px;
 | 
					            padding: 12px 15px 15px 15px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .total-amount-label {
 | 
					        .total-display-label {
 | 
				
			||||||
            display: inline;
 | 
					            display: inline;
 | 
				
			||||||
            font-weight: 600;
 | 
					            font-weight: 600;
 | 
				
			||||||
            font-size: 14px;
 | 
					            font-size: 14px;
 | 
				
			||||||
@ -445,7 +247,7 @@
 | 
				
			|||||||
            color: #595959;
 | 
					            color: #595959;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .total-amount span {
 | 
					        .total-display-box span {
 | 
				
			||||||
            float: right;
 | 
					            float: right;
 | 
				
			||||||
            font-weight: 500;
 | 
					            font-weight: 500;
 | 
				
			||||||
            font-size: 14px;
 | 
					            font-size: 14px;
 | 
				
			||||||
@ -453,62 +255,64 @@
 | 
				
			|||||||
            text-align: right;
 | 
					            text-align: right;
 | 
				
			||||||
            color: #5851D8;
 | 
					            color: #5851D8;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					 | 
				
			||||||
    </style>
 | 
					    </style>
 | 
				
			||||||
</head>
 | 
					</head>
 | 
				
			||||||
<body>
 | 
					<body>
 | 
				
			||||||
    <div class="header-table">
 | 
					    <div class="header-container">
 | 
				
			||||||
        <table width="100%">
 | 
					        <table width="100%">
 | 
				
			||||||
            <tr>
 | 
					            <tr>
 | 
				
			||||||
                @if($logo)
 | 
					                @if($logo)
 | 
				
			||||||
                    <td class="header-left">
 | 
					                    <td class="header-section-left">
 | 
				
			||||||
                        <img class="header-logo" src="{{ $logo }}" alt="Company Logo">
 | 
					                        <img class="header-logo" src="{{ $logo }}" alt="Company Logo">
 | 
				
			||||||
                @else
 | 
					                @else
 | 
				
			||||||
                    @if($payment->user->company)
 | 
					                    @if($payment->user->company)
 | 
				
			||||||
                    <td class="header-left" style="padding-top:0px;">
 | 
					                    <td class="header-section-left" style="padding-top:0px;">
 | 
				
			||||||
                        <h1 class="header-logo"> {{$payment->user->company->name}} </h1>
 | 
					                        <h1 class="header-logo"> {{$payment->user->company->name}} </h1>
 | 
				
			||||||
                    @endif
 | 
					                    @endif
 | 
				
			||||||
                @endif
 | 
					                @endif
 | 
				
			||||||
                </td>
 | 
					                </td>
 | 
				
			||||||
                <td class="header-right company-details">
 | 
					                <td class="header-section-right company-details">
 | 
				
			||||||
                    @include('app.pdf.payment.partials.company-address')
 | 
					                    @include('app.pdf.payment.partials.company-address')
 | 
				
			||||||
                </td>
 | 
					                </td>
 | 
				
			||||||
            </tr>
 | 
					            </tr>
 | 
				
			||||||
        </table>
 | 
					        </table>
 | 
				
			||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    <hr style="border: 0.620315px solid #E8E8E8;">
 | 
					    <hr style="border: 0.620315px solid #E8E8E8;">
 | 
				
			||||||
    <p class="content-header">
 | 
					
 | 
				
			||||||
 | 
					    <p class="content-heading">
 | 
				
			||||||
        <span>PAYMENT RECEIPT</span>
 | 
					        <span>PAYMENT RECEIPT</span>
 | 
				
			||||||
    </p>
 | 
					    </p>
 | 
				
			||||||
    <div class="wrapper">
 | 
					
 | 
				
			||||||
        <div class="address">
 | 
					    <div class="content-wrapper">
 | 
				
			||||||
            <div class="bill-add">
 | 
					        <div class="main-content">
 | 
				
			||||||
                <div style="float:left;">
 | 
					            <div class="customer-address-container">
 | 
				
			||||||
 | 
					                <div class="billing-address-container">
 | 
				
			||||||
                    @include('app.pdf.payment.partials.billing-address')
 | 
					                    @include('app.pdf.payment.partials.billing-address')
 | 
				
			||||||
                </div>
 | 
					                </div>
 | 
				
			||||||
                <div style="float:right;">
 | 
					                <div class="billing-address-container--right">
 | 
				
			||||||
                </div>
 | 
					                </div>
 | 
				
			||||||
                <div style="clear: both;"></div>
 | 
					                <div style="clear: both;"></div>
 | 
				
			||||||
            </div>
 | 
					            </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            <div class="job-add">
 | 
					            <div class="payment-details-container">
 | 
				
			||||||
                <table width="100%">
 | 
					                <table width="100%">
 | 
				
			||||||
                    <tr>
 | 
					                    <tr>
 | 
				
			||||||
                        <td class="textStyle1" style="text-align: left; color: #55547A">Payment Date</td>
 | 
					                        <td class="attribute-label">Payment Date</td>
 | 
				
			||||||
                        <td class="textStyle2">  {{$payment->formattedPaymentDate}}</td>
 | 
					                        <td class="attribute-value">  {{$payment->formattedPaymentDate}}</td>
 | 
				
			||||||
                    </tr>
 | 
					                    </tr>
 | 
				
			||||||
                    <tr>
 | 
					                    <tr>
 | 
				
			||||||
                        <td class="textStyle1" style="text-align: left; color: #55547A">Payment Number</td>
 | 
					                        <td class="attribute-label">Payment Number</td>
 | 
				
			||||||
                        <td class="textStyle2">  {{$payment->payment_number}}</td>
 | 
					                        <td class="attribute-value">  {{$payment->payment_number}}</td>
 | 
				
			||||||
                    </tr>
 | 
					                    </tr>
 | 
				
			||||||
                    <tr>
 | 
					                    <tr>
 | 
				
			||||||
                        <td class="textStyle1" style="text-align: left; color: #55547A">Payment Mode</td>
 | 
					                        <td class="attribute-label">Payment Mode</td>
 | 
				
			||||||
                        <td class="textStyle2">  {{$payment->paymentMethod ? $payment->paymentMethod->name : '-'}}</td>
 | 
					                        <td class="attribute-value">  {{$payment->paymentMethod ? $payment->paymentMethod->name : '-'}}</td>
 | 
				
			||||||
                    </tr>
 | 
					                    </tr>
 | 
				
			||||||
                    @if ($payment->invoice && $payment->invoice->invoice_number)
 | 
					                    @if ($payment->invoice && $payment->invoice->invoice_number)
 | 
				
			||||||
                        <tr>
 | 
					                        <tr>
 | 
				
			||||||
                            <td class="textStyle1" style="text-align: left; color: #55547A">Invoice</td>
 | 
					                            <td class="attribute-label">Invoice</td>
 | 
				
			||||||
                            <td class="textStyle2">  {{$payment->invoice->invoice_number}}</td>
 | 
					                            <td class="attribute-value">  {{$payment->invoice->invoice_number}}</td>
 | 
				
			||||||
                        </tr>
 | 
					                        </tr>
 | 
				
			||||||
                    @endif
 | 
					                    @endif
 | 
				
			||||||
                </table>
 | 
					                </table>
 | 
				
			||||||
@ -516,8 +320,8 @@
 | 
				
			|||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
        <div style="clear: both;"></div>
 | 
					        <div style="clear: both;"></div>
 | 
				
			||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
    <div class="total-amount">
 | 
					    <div class="total-display-box">
 | 
				
			||||||
        <p class="total-amount-label">Amount Received</p>
 | 
					        <p class="total-display-label">Amount Received</p>
 | 
				
			||||||
        <span>{!! format_money_pdf($payment->amount, $payment->user->currency) !!}</span>
 | 
					        <span>{!! format_money_pdf($payment->amount, $payment->user->currency) !!}</span>
 | 
				
			||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
</body>
 | 
					</body>
 | 
				
			||||||
 | 
				
			|||||||
@ -2,35 +2,24 @@
 | 
				
			|||||||
<html lang="en">
 | 
					<html lang="en">
 | 
				
			||||||
<head>
 | 
					<head>
 | 
				
			||||||
    <title>Expenses Report</title>
 | 
					    <title>Expenses Report</title>
 | 
				
			||||||
    {{-- <link href="https://fonts.googleapis.com/css?family=Poppins&display=swap" rel="stylesheet"> --}}
 | 
					 | 
				
			||||||
    <style type="text/css">
 | 
					    <style type="text/css">
 | 
				
			||||||
        body {
 | 
					        body {
 | 
				
			||||||
            font-family: "DejaVu Sans";
 | 
					            font-family: "DejaVu Sans";
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        /* html {
 | 
					 | 
				
			||||||
            margin: 0px;
 | 
					 | 
				
			||||||
            padding: 0px;
 | 
					 | 
				
			||||||
        } */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        table {
 | 
					        table {
 | 
				
			||||||
            border-collapse: collapse;
 | 
					            border-collapse: collapse;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .main-container {
 | 
					 | 
				
			||||||
            /* padding: 30px 60px; */
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        .sub-container{
 | 
					        .sub-container{
 | 
				
			||||||
            padding: 0px 20px;
 | 
					            padding: 0px 20px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .header {
 | 
					        .report-header {
 | 
				
			||||||
            width: 100%;
 | 
					            width: 100%;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .heading-text {
 | 
					        .heading-text {
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: 600;
 | 
					            font-weight: 600;
 | 
				
			||||||
            font-size: 24px;
 | 
					            font-size: 24px;
 | 
				
			||||||
            color: #5851D8;
 | 
					            color: #5851D8;
 | 
				
			||||||
@ -41,7 +30,6 @@
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .heading-date-range {
 | 
					        .heading-date-range {
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: 600;
 | 
					            font-weight: 600;
 | 
				
			||||||
            font-size: 15px;
 | 
					            font-size: 15px;
 | 
				
			||||||
            color: #A5ACC1;
 | 
					            color: #A5ACC1;
 | 
				
			||||||
@ -52,10 +40,8 @@
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .sub-heading-text {
 | 
					        .sub-heading-text {
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: 600;
 | 
					            font-weight: 600;
 | 
				
			||||||
            font-size: 16px;
 | 
					            font-size: 16px;
 | 
				
			||||||
            /* line-height: 21px; */
 | 
					 | 
				
			||||||
            color: #595959;
 | 
					            color: #595959;
 | 
				
			||||||
            padding: 0px;
 | 
					            padding: 0px;
 | 
				
			||||||
            margin: 0px;
 | 
					            margin: 0px;
 | 
				
			||||||
@ -65,8 +51,6 @@
 | 
				
			|||||||
        .expenses-title {
 | 
					        .expenses-title {
 | 
				
			||||||
            margin-top: 60px;
 | 
					            margin-top: 60px;
 | 
				
			||||||
            padding-left: 3px;
 | 
					            padding-left: 3px;
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 16px;
 | 
					            font-size: 16px;
 | 
				
			||||||
            line-height: 21px;
 | 
					            line-height: 21px;
 | 
				
			||||||
            color: #040405;
 | 
					            color: #040405;
 | 
				
			||||||
@ -84,18 +68,14 @@
 | 
				
			|||||||
        .expense-title {
 | 
					        .expense-title {
 | 
				
			||||||
            padding: 0px;
 | 
					            padding: 0px;
 | 
				
			||||||
            margin: 0px;
 | 
					            margin: 0px;
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 14px;
 | 
					            font-size: 14px;
 | 
				
			||||||
            line-height: 21px;
 | 
					            line-height: 21px;
 | 
				
			||||||
            color: #595959;
 | 
					            color: #595959;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .expense-money {
 | 
					        .expense-amount {
 | 
				
			||||||
            padding: 0px;
 | 
					            padding: 0px;
 | 
				
			||||||
            margin: 0px;
 | 
					            margin: 0px;
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 14px;
 | 
					            font-size: 14px;
 | 
				
			||||||
            line-height: 21px;
 | 
					            line-height: 21px;
 | 
				
			||||||
            text-align: right;
 | 
					            text-align: right;
 | 
				
			||||||
@ -118,7 +98,6 @@
 | 
				
			|||||||
            padding: 0px;
 | 
					            padding: 0px;
 | 
				
			||||||
            margin: 0px;
 | 
					            margin: 0px;
 | 
				
			||||||
            text-align: right;
 | 
					            text-align: right;
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: 500;
 | 
					            font-weight: 500;
 | 
				
			||||||
            font-size: 16px;
 | 
					            font-size: 16px;
 | 
				
			||||||
            line-height: 21px;
 | 
					            line-height: 21px;
 | 
				
			||||||
@ -126,7 +105,7 @@
 | 
				
			|||||||
            color: #040405;
 | 
					            color: #040405;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .total-expense-table {
 | 
					        .report-footer {
 | 
				
			||||||
            width: 100%;
 | 
					            width: 100%;
 | 
				
			||||||
            margin-top: 40px;
 | 
					            margin-top: 40px;
 | 
				
			||||||
            padding: 15px 20px;
 | 
					            padding: 15px 20px;
 | 
				
			||||||
@ -134,22 +113,20 @@
 | 
				
			|||||||
            box-sizing: border-box;
 | 
					            box-sizing: border-box;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .total-expense-title {
 | 
					        .report-footer-label {
 | 
				
			||||||
            padding: 0px;
 | 
					            padding: 0px;
 | 
				
			||||||
            margin: 0px;
 | 
					            margin: 0px;
 | 
				
			||||||
            text-align: left;
 | 
					            text-align: left;
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: 600;
 | 
					            font-weight: 600;
 | 
				
			||||||
            font-size: 16px;
 | 
					            font-size: 16px;
 | 
				
			||||||
            line-height: 21px;
 | 
					            line-height: 21px;
 | 
				
			||||||
            color: #595959;
 | 
					            color: #595959;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .total-expense-money {
 | 
					        .report-footer-value {
 | 
				
			||||||
            padding: 0px;
 | 
					            padding: 0px;
 | 
				
			||||||
            margin: 0px;
 | 
					            margin: 0px;
 | 
				
			||||||
            text-align: right;
 | 
					            text-align: right;
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: 500;
 | 
					            font-weight: 500;
 | 
				
			||||||
            font-size: 20px;
 | 
					            font-size: 20px;
 | 
				
			||||||
            line-height: 21px;
 | 
					            line-height: 21px;
 | 
				
			||||||
@ -158,9 +135,8 @@
 | 
				
			|||||||
    </style>
 | 
					    </style>
 | 
				
			||||||
</head>
 | 
					</head>
 | 
				
			||||||
<body>
 | 
					<body>
 | 
				
			||||||
    <div class="main-container">
 | 
					 | 
				
			||||||
    <div class="sub-container">
 | 
					    <div class="sub-container">
 | 
				
			||||||
            <table class="header">
 | 
					        <table class="report-header">
 | 
				
			||||||
            <tr>
 | 
					            <tr>
 | 
				
			||||||
                <td>
 | 
					                <td>
 | 
				
			||||||
                    <p class="heading-text">{{ $company->name }}</p>
 | 
					                    <p class="heading-text">{{ $company->name }}</p>
 | 
				
			||||||
@ -186,7 +162,7 @@
 | 
				
			|||||||
                            </p>
 | 
					                            </p>
 | 
				
			||||||
                        </td>
 | 
					                        </td>
 | 
				
			||||||
                        <td>
 | 
					                        <td>
 | 
				
			||||||
                                <p class="expense-money">
 | 
					                            <p class="expense-amount">
 | 
				
			||||||
                                {!! format_money_pdf($expenseCategory->total_amount) !!}
 | 
					                                {!! format_money_pdf($expenseCategory->total_amount) !!}
 | 
				
			||||||
                            </p>
 | 
					                            </p>
 | 
				
			||||||
                        </td>
 | 
					                        </td>
 | 
				
			||||||
@ -203,16 +179,15 @@
 | 
				
			|||||||
            </td>
 | 
					            </td>
 | 
				
			||||||
        </tr>
 | 
					        </tr>
 | 
				
			||||||
    </table>
 | 
					    </table>
 | 
				
			||||||
        <table class="total-expense-table">
 | 
					    <table class="report-footer">
 | 
				
			||||||
        <tr>
 | 
					        <tr>
 | 
				
			||||||
            <td>
 | 
					            <td>
 | 
				
			||||||
                    <p class="total-expense-title">TOTAL EXPENSE</p>
 | 
					                <p class="report-footer-label">TOTAL EXPENSE</p>
 | 
				
			||||||
            </td>
 | 
					            </td>
 | 
				
			||||||
            <td>
 | 
					            <td>
 | 
				
			||||||
                    <p class="total-expense-money">{!! format_money_pdf($totalExpense) !!}</p>
 | 
					                <p class="report-footer-value">{!! format_money_pdf($totalExpense) !!}</p>
 | 
				
			||||||
            </td>
 | 
					            </td>
 | 
				
			||||||
        </tr>
 | 
					        </tr>
 | 
				
			||||||
    </table>
 | 
					    </table>
 | 
				
			||||||
    </div>
 | 
					 | 
				
			||||||
</body>
 | 
					</body>
 | 
				
			||||||
</html>
 | 
					</html>
 | 
				
			||||||
 | 
				
			|||||||
@ -2,35 +2,24 @@
 | 
				
			|||||||
<html lang="en">
 | 
					<html lang="en">
 | 
				
			||||||
<head>
 | 
					<head>
 | 
				
			||||||
    <title>Profit & Loss Report</title>
 | 
					    <title>Profit & Loss Report</title>
 | 
				
			||||||
    {{-- <link href="https://fonts.googleapis.com/css?family=Poppins&display=swap" rel="stylesheet"> --}}
 | 
					 | 
				
			||||||
    <style type="text/css">
 | 
					    <style type="text/css">
 | 
				
			||||||
        body {
 | 
					        body {
 | 
				
			||||||
            font-family: "DejaVu Sans";
 | 
					            font-family: "DejaVu Sans";
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        html {
 | 
					 | 
				
			||||||
            margin: 0px;
 | 
					 | 
				
			||||||
            padding: 0px;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        table {
 | 
					        table {
 | 
				
			||||||
            border-collapse: collapse;
 | 
					            border-collapse: collapse;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .main-container {
 | 
					 | 
				
			||||||
            padding: 30px 60px;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        .sub-container{
 | 
					        .sub-container{
 | 
				
			||||||
            padding: 0px 20px;
 | 
					            padding: 0px 20px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .header {
 | 
					        .report-header {
 | 
				
			||||||
            width: 100%;
 | 
					            width: 100%;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .heading-text {
 | 
					        .heading-text {
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: 600;
 | 
					            font-weight: 600;
 | 
				
			||||||
            font-size: 24px;
 | 
					            font-size: 24px;
 | 
				
			||||||
            color: #5851D8;
 | 
					            color: #5851D8;
 | 
				
			||||||
@ -41,7 +30,6 @@
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .heading-date-range {
 | 
					        .heading-date-range {
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: 600;
 | 
					            font-weight: 600;
 | 
				
			||||||
            font-size: 15px;
 | 
					            font-size: 15px;
 | 
				
			||||||
            color: #A5ACC1;
 | 
					            color: #A5ACC1;
 | 
				
			||||||
@ -52,10 +40,8 @@
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .sub-heading-text {
 | 
					        .sub-heading-text {
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: 600;
 | 
					            font-weight: 600;
 | 
				
			||||||
            font-size: 16px;
 | 
					            font-size: 16px;
 | 
				
			||||||
            /* line-height: 21px; */
 | 
					 | 
				
			||||||
            color: #595959;
 | 
					            color: #595959;
 | 
				
			||||||
            padding: 0px;
 | 
					            padding: 0px;
 | 
				
			||||||
            margin: 0px;
 | 
					            margin: 0px;
 | 
				
			||||||
@ -70,18 +56,15 @@
 | 
				
			|||||||
        .income-title {
 | 
					        .income-title {
 | 
				
			||||||
            padding: 0px;
 | 
					            padding: 0px;
 | 
				
			||||||
            margin: 0px;
 | 
					            margin: 0px;
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 16px;
 | 
					            font-size: 16px;
 | 
				
			||||||
            line-height: 21px;
 | 
					            line-height: 21px;
 | 
				
			||||||
            color: #040405;
 | 
					            color: #040405;
 | 
				
			||||||
            text-align: left;
 | 
					            text-align: left;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .income-money {
 | 
					        .income-amount {
 | 
				
			||||||
            padding: 0px;
 | 
					            padding: 0px;
 | 
				
			||||||
            margin: 0px;
 | 
					            margin: 0px;
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: 500;
 | 
					            font-weight: 500;
 | 
				
			||||||
            font-size: 16px;
 | 
					            font-size: 16px;
 | 
				
			||||||
            line-height: 21px;
 | 
					            line-height: 21px;
 | 
				
			||||||
@ -93,8 +76,6 @@
 | 
				
			|||||||
        .expenses-title {
 | 
					        .expenses-title {
 | 
				
			||||||
            margin-top: 20px;
 | 
					            margin-top: 20px;
 | 
				
			||||||
            padding-left: 3px;
 | 
					            padding-left: 3px;
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 16px;
 | 
					            font-size: 16px;
 | 
				
			||||||
            line-height: 21px;
 | 
					            line-height: 21px;
 | 
				
			||||||
            color: #040405;
 | 
					            color: #040405;
 | 
				
			||||||
@ -112,25 +93,21 @@
 | 
				
			|||||||
        .expense-title {
 | 
					        .expense-title {
 | 
				
			||||||
            padding: 0px;
 | 
					            padding: 0px;
 | 
				
			||||||
            margin: 0px;
 | 
					            margin: 0px;
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 14px;
 | 
					            font-size: 14px;
 | 
				
			||||||
            line-height: 21px;
 | 
					            line-height: 21px;
 | 
				
			||||||
            color: #595959;
 | 
					            color: #595959;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .expense-money {
 | 
					        .expense-amount {
 | 
				
			||||||
            padding: 0px;
 | 
					            padding: 0px;
 | 
				
			||||||
            margin: 0px;
 | 
					            margin: 0px;
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 14px;
 | 
					            font-size: 14px;
 | 
				
			||||||
            line-height: 21px;
 | 
					            line-height: 21px;
 | 
				
			||||||
            text-align: right;
 | 
					            text-align: right;
 | 
				
			||||||
            color: #595959;
 | 
					            color: #595959;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .expense-total-table {
 | 
					        .expense-total-indicator-table {
 | 
				
			||||||
            border-top: 1px solid #EAF1FB;
 | 
					            border-top: 1px solid #EAF1FB;
 | 
				
			||||||
            width: 100%;
 | 
					            width: 100%;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
@ -146,7 +123,6 @@
 | 
				
			|||||||
            padding: 0px;
 | 
					            padding: 0px;
 | 
				
			||||||
            margin: 0px;
 | 
					            margin: 0px;
 | 
				
			||||||
            text-align: right;
 | 
					            text-align: right;
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: 500;
 | 
					            font-weight: 500;
 | 
				
			||||||
            font-size: 16px;
 | 
					            font-size: 16px;
 | 
				
			||||||
            line-height: 21px;
 | 
					            line-height: 21px;
 | 
				
			||||||
@ -154,7 +130,7 @@
 | 
				
			|||||||
            color: #040405;
 | 
					            color: #040405;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .profit-table {
 | 
					        .report-footer {
 | 
				
			||||||
            width: 100%;
 | 
					            width: 100%;
 | 
				
			||||||
            margin-top: 40px;
 | 
					            margin-top: 40px;
 | 
				
			||||||
            padding: 15px 20px;
 | 
					            padding: 15px 20px;
 | 
				
			||||||
@ -162,22 +138,20 @@
 | 
				
			|||||||
            box-sizing: border-box;
 | 
					            box-sizing: border-box;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .profit-title {
 | 
					        .report-footer-label {
 | 
				
			||||||
            padding: 0px;
 | 
					            padding: 0px;
 | 
				
			||||||
            margin: 0px;
 | 
					            margin: 0px;
 | 
				
			||||||
            text-align: left;
 | 
					            text-align: left;
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: 600;
 | 
					            font-weight: 600;
 | 
				
			||||||
            font-size: 16px;
 | 
					            font-size: 16px;
 | 
				
			||||||
            line-height: 21px;
 | 
					            line-height: 21px;
 | 
				
			||||||
            color: #595959;
 | 
					            color: #595959;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .profit-money {
 | 
					        .report-footer-value {
 | 
				
			||||||
            padding: 0px;
 | 
					            padding: 0px;
 | 
				
			||||||
            margin: 0px;
 | 
					            margin: 0px;
 | 
				
			||||||
            text-align: right;
 | 
					            text-align: right;
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: 500;
 | 
					            font-weight: 500;
 | 
				
			||||||
            font-size: 20px;
 | 
					            font-size: 20px;
 | 
				
			||||||
            line-height: 21px;
 | 
					            line-height: 21px;
 | 
				
			||||||
@ -186,9 +160,8 @@
 | 
				
			|||||||
    </style>
 | 
					    </style>
 | 
				
			||||||
</head>
 | 
					</head>
 | 
				
			||||||
<body>
 | 
					<body>
 | 
				
			||||||
    <div class="main-container">
 | 
					 | 
				
			||||||
    <div class="sub-container">
 | 
					    <div class="sub-container">
 | 
				
			||||||
            <table class="header">
 | 
					        <table class="report-header">
 | 
				
			||||||
            <tr>
 | 
					            <tr>
 | 
				
			||||||
                <td>
 | 
					                <td>
 | 
				
			||||||
                    <p class="heading-text">{{ $company->name }}</p>
 | 
					                    <p class="heading-text">{{ $company->name }}</p>
 | 
				
			||||||
@ -210,7 +183,7 @@
 | 
				
			|||||||
                    <p class="income-title">Income</p>
 | 
					                    <p class="income-title">Income</p>
 | 
				
			||||||
                </td>
 | 
					                </td>
 | 
				
			||||||
                <td>
 | 
					                <td>
 | 
				
			||||||
                        <p class="income-money">{!! format_money_pdf($income) !!}</p>
 | 
					                    <p class="income-amount">{!! format_money_pdf($income) !!}</p>
 | 
				
			||||||
                </td>
 | 
					                </td>
 | 
				
			||||||
            </tr>
 | 
					            </tr>
 | 
				
			||||||
        </table>
 | 
					        </table>
 | 
				
			||||||
@ -225,7 +198,7 @@
 | 
				
			|||||||
                            </p>
 | 
					                            </p>
 | 
				
			||||||
                        </td>
 | 
					                        </td>
 | 
				
			||||||
                        <td>
 | 
					                        <td>
 | 
				
			||||||
                                <p class="expense-money">
 | 
					                            <p class="expense-amount">
 | 
				
			||||||
                                {!! format_money_pdf($expenseCategory->total_amount) !!}
 | 
					                                {!! format_money_pdf($expenseCategory->total_amount) !!}
 | 
				
			||||||
                            </p>
 | 
					                            </p>
 | 
				
			||||||
                        </td>
 | 
					                        </td>
 | 
				
			||||||
@ -236,23 +209,22 @@
 | 
				
			|||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        <table class="expense-total-table">
 | 
					    <table class="expense-total-indicator-table">
 | 
				
			||||||
        <tr>
 | 
					        <tr>
 | 
				
			||||||
            <td class="expense-total-cell">
 | 
					            <td class="expense-total-cell">
 | 
				
			||||||
                <p class="expense-total">{!! format_money_pdf($totalExpense) !!}</p>
 | 
					                <p class="expense-total">{!! format_money_pdf($totalExpense) !!}</p>
 | 
				
			||||||
            </td>
 | 
					            </td>
 | 
				
			||||||
        </tr>
 | 
					        </tr>
 | 
				
			||||||
    </table>
 | 
					    </table>
 | 
				
			||||||
        <table class="profit-table">
 | 
					    <table class="report-footer">
 | 
				
			||||||
        <tr>
 | 
					        <tr>
 | 
				
			||||||
            <td>
 | 
					            <td>
 | 
				
			||||||
                    <p class="profit-title">NET PROFIT</p>
 | 
					                <p class="report-footer-label">NET PROFIT</p>
 | 
				
			||||||
            </td>
 | 
					            </td>
 | 
				
			||||||
            <td>
 | 
					            <td>
 | 
				
			||||||
                    <p class="profit-money">{!! format_money_pdf(($income-$totalExpense)) !!}</p>
 | 
					                <p class="report-footer-value">{!! format_money_pdf(($income-$totalExpense)) !!}</p>
 | 
				
			||||||
            </td>
 | 
					            </td>
 | 
				
			||||||
        </tr>
 | 
					        </tr>
 | 
				
			||||||
    </table>
 | 
					    </table>
 | 
				
			||||||
    </div>
 | 
					 | 
				
			||||||
</body>
 | 
					</body>
 | 
				
			||||||
</html>
 | 
					</html>
 | 
				
			||||||
 | 
				
			|||||||
@ -2,35 +2,24 @@
 | 
				
			|||||||
<html lang="en">
 | 
					<html lang="en">
 | 
				
			||||||
<head>
 | 
					<head>
 | 
				
			||||||
    <title>Sales Customer Report</title>
 | 
					    <title>Sales Customer Report</title>
 | 
				
			||||||
    {{-- <link href="https://fonts.googleapis.com/css?family=Poppins&display=swap" rel="stylesheet"> --}}
 | 
					 | 
				
			||||||
    <style type="text/css">
 | 
					    <style type="text/css">
 | 
				
			||||||
        body {
 | 
					        body {
 | 
				
			||||||
            font-family: "DejaVu Sans";
 | 
					            font-family: "DejaVu Sans";
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        
 | 
					        
 | 
				
			||||||
        /* html {
 | 
					 | 
				
			||||||
            margin: 0px;
 | 
					 | 
				
			||||||
            padding: 0px;
 | 
					 | 
				
			||||||
        } */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        table {
 | 
					        table {
 | 
				
			||||||
            border-collapse: collapse;
 | 
					            border-collapse: collapse;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .main-container {
 | 
					 | 
				
			||||||
            /* padding: 30px 80px; */
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        .sub-container{
 | 
					        .sub-container{
 | 
				
			||||||
            padding: 0px 20px;
 | 
					            padding: 0px 20px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .header {
 | 
					        .report-header {
 | 
				
			||||||
            width: 100%;
 | 
					            width: 100%;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .heading-text {
 | 
					        .heading-text {
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: 600;
 | 
					            font-weight: 600;
 | 
				
			||||||
            font-size: 24px;
 | 
					            font-size: 24px;
 | 
				
			||||||
            color: #5851D8;
 | 
					            color: #5851D8;
 | 
				
			||||||
@ -41,7 +30,6 @@
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .heading-date-range {
 | 
					        .heading-date-range {
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: 600;
 | 
					            font-weight: 600;
 | 
				
			||||||
            font-size: 15px;
 | 
					            font-size: 15px;
 | 
				
			||||||
            color: #A5ACC1;
 | 
					            color: #A5ACC1;
 | 
				
			||||||
@ -52,7 +40,6 @@
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .sub-heading-text {
 | 
					        .sub-heading-text {
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: 600;
 | 
					            font-weight: 600;
 | 
				
			||||||
            font-size: 16px;
 | 
					            font-size: 16px;
 | 
				
			||||||
            line-height: 21px;
 | 
					            line-height: 21px;
 | 
				
			||||||
@ -62,90 +49,55 @@
 | 
				
			|||||||
            margin-top: 30px;
 | 
					            margin-top: 30px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .income-table {
 | 
					        .sales-customer-name {
 | 
				
			||||||
            margin-top: 53px;
 | 
					 | 
				
			||||||
            width: 100%;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        .income-title {
 | 
					 | 
				
			||||||
            padding: 0px;
 | 
					 | 
				
			||||||
            margin: 0px;
 | 
					 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 16px;
 | 
					 | 
				
			||||||
            line-height: 21px;
 | 
					 | 
				
			||||||
            color: #040405;
 | 
					 | 
				
			||||||
            text-align: left;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        .income-money {
 | 
					 | 
				
			||||||
            padding: 0px;
 | 
					 | 
				
			||||||
            margin: 0px;
 | 
					 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: 500;
 | 
					 | 
				
			||||||
            font-size: 16px;
 | 
					 | 
				
			||||||
            line-height: 21px;
 | 
					 | 
				
			||||||
            text-align: right;
 | 
					 | 
				
			||||||
            color: #040405;
 | 
					 | 
				
			||||||
            text-align: right;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        .expenses-title {
 | 
					 | 
				
			||||||
            margin-top: 20px;
 | 
					            margin-top: 20px;
 | 
				
			||||||
            padding-left: 3px;
 | 
					            padding-left: 3px;
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 16px;
 | 
					            font-size: 16px;
 | 
				
			||||||
            line-height: 21px;
 | 
					            line-height: 21px;
 | 
				
			||||||
            color: #040405;
 | 
					            color: #040405;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .expenses-table-container {
 | 
					        .sales-table-container {
 | 
				
			||||||
            padding-left: 10px;
 | 
					            padding-left: 10px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .expenses-table {
 | 
					        .sales-table {
 | 
				
			||||||
            width: 100%;
 | 
					            width: 100%;
 | 
				
			||||||
            padding-bottom: 10px;
 | 
					            padding-bottom: 10px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .expense-title {
 | 
					        .sales-information-text {
 | 
				
			||||||
            padding: 0px;
 | 
					            padding: 0px;
 | 
				
			||||||
            margin: 0px;
 | 
					            margin: 0px;
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 14px;
 | 
					            font-size: 14px;
 | 
				
			||||||
            line-height: 21px;
 | 
					            line-height: 21px;
 | 
				
			||||||
            color: #595959;
 | 
					            color: #595959;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .expense-money {
 | 
					        .sales-amount {
 | 
				
			||||||
            padding: 0px;
 | 
					            padding: 0px;
 | 
				
			||||||
            margin: 0px;
 | 
					            margin: 0px;
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 14px;
 | 
					            font-size: 14px;
 | 
				
			||||||
            line-height: 21px;
 | 
					            line-height: 21px;
 | 
				
			||||||
            text-align: right;
 | 
					            text-align: right;
 | 
				
			||||||
            color: #595959;
 | 
					            color: #595959;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .expense-total-table {
 | 
					        .sales-total-indicator-table {
 | 
				
			||||||
            border-top: 1px solid #EAF1FB;
 | 
					            border-top: 1px solid #EAF1FB;
 | 
				
			||||||
            width: 100%;
 | 
					            width: 100%;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .expense-total-cell {
 | 
					        .sales-total-cell {
 | 
				
			||||||
            padding-top: 10px;
 | 
					            padding-top: 10px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .expense-total {
 | 
					        .sales-total-amount {
 | 
				
			||||||
            padding-top: 10px;
 | 
					            padding-top: 10px;
 | 
				
			||||||
            padding-right: 30px;
 | 
					            padding-right: 30px;
 | 
				
			||||||
            padding: 0px;
 | 
					            padding: 0px;
 | 
				
			||||||
            margin: 0px;
 | 
					            margin: 0px;
 | 
				
			||||||
            text-align: right;
 | 
					            text-align: right;
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: 500;
 | 
					            font-weight: 500;
 | 
				
			||||||
            font-size: 16px;
 | 
					            font-size: 16px;
 | 
				
			||||||
            line-height: 21px;
 | 
					            line-height: 21px;
 | 
				
			||||||
@ -153,7 +105,7 @@
 | 
				
			|||||||
            color: #040405;
 | 
					            color: #040405;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .profit-table {
 | 
					        .report-footer {
 | 
				
			||||||
            width: 100%;
 | 
					            width: 100%;
 | 
				
			||||||
            margin-top: 40px;
 | 
					            margin-top: 40px;
 | 
				
			||||||
            padding: 15px 20px;
 | 
					            padding: 15px 20px;
 | 
				
			||||||
@ -161,22 +113,20 @@
 | 
				
			|||||||
            box-sizing: border-box;
 | 
					            box-sizing: border-box;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .profit-title {
 | 
					        .report-footer-label {
 | 
				
			||||||
            padding: 0px;
 | 
					            padding: 0px;
 | 
				
			||||||
            margin: 0px;
 | 
					            margin: 0px;
 | 
				
			||||||
            text-align: left;
 | 
					            text-align: left;
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: 600;
 | 
					            font-weight: 600;
 | 
				
			||||||
            font-size: 16px;
 | 
					            font-size: 16px;
 | 
				
			||||||
            line-height: 21px;
 | 
					            line-height: 21px;
 | 
				
			||||||
            color: #595959;
 | 
					            color: #595959;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .profit-money {
 | 
					        .report-footer-value {
 | 
				
			||||||
            padding: 0px;
 | 
					            padding: 0px;
 | 
				
			||||||
            margin: 0px;
 | 
					            margin: 0px;
 | 
				
			||||||
            text-align: right;
 | 
					            text-align: right;
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: 500;
 | 
					            font-weight: 500;
 | 
				
			||||||
            font-size: 20px;
 | 
					            font-size: 20px;
 | 
				
			||||||
            line-height: 21px;
 | 
					            line-height: 21px;
 | 
				
			||||||
@ -188,9 +138,8 @@
 | 
				
			|||||||
    </style>
 | 
					    </style>
 | 
				
			||||||
</head>
 | 
					</head>
 | 
				
			||||||
<body>
 | 
					<body>
 | 
				
			||||||
    <div class="main-container">
 | 
					 | 
				
			||||||
    <div class="sub-container">
 | 
					    <div class="sub-container">
 | 
				
			||||||
            <table class="header">
 | 
					        <table class="report-header">
 | 
				
			||||||
            <tr>
 | 
					            <tr>
 | 
				
			||||||
                <td>
 | 
					                <td>
 | 
				
			||||||
                    <p class="heading-text">{{ $company->name }}</p>
 | 
					                    <p class="heading-text">{{ $company->name }}</p>
 | 
				
			||||||
@ -206,29 +155,19 @@
 | 
				
			|||||||
            </tr>
 | 
					            </tr>
 | 
				
			||||||
        </table>
 | 
					        </table>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            {{-- <table class="income-table">
 | 
					 | 
				
			||||||
                <tr>
 | 
					 | 
				
			||||||
                    <td>
 | 
					 | 
				
			||||||
                        <p class="income-title">Income</p>
 | 
					 | 
				
			||||||
                    </td>
 | 
					 | 
				
			||||||
                    <td>
 | 
					 | 
				
			||||||
                        <p class="income-money">{{ $income }}</p>
 | 
					 | 
				
			||||||
                    </td>
 | 
					 | 
				
			||||||
                </tr>
 | 
					 | 
				
			||||||
            </table> --}}
 | 
					 | 
				
			||||||
        @foreach ($customers as $customer)
 | 
					        @foreach ($customers as $customer)
 | 
				
			||||||
                <p class="expenses-title">{{ $customer->name }}</p>
 | 
					            <p class="sales-customer-name">{{ $customer->name }}</p>
 | 
				
			||||||
                <div class="expenses-table-container">
 | 
					            <div class="sales-table-container">
 | 
				
			||||||
                    <table class="expenses-table">
 | 
					                <table class="sales-table">
 | 
				
			||||||
                    @foreach ($customer->invoices as $invoice)
 | 
					                    @foreach ($customer->invoices as $invoice)
 | 
				
			||||||
                        <tr>
 | 
					                        <tr>
 | 
				
			||||||
                            <td>
 | 
					                            <td>
 | 
				
			||||||
                                    <p class="expense-title">
 | 
					                                <p class="sales-information-text">
 | 
				
			||||||
                                    {{ $invoice->formattedInvoiceDate }} ({{ $invoice->invoice_number }})
 | 
					                                    {{ $invoice->formattedInvoiceDate }} ({{ $invoice->invoice_number }})
 | 
				
			||||||
                                </p>
 | 
					                                </p>
 | 
				
			||||||
                            </td>
 | 
					                            </td>
 | 
				
			||||||
                            <td>
 | 
					                            <td>
 | 
				
			||||||
                                    <p class="expense-money">
 | 
					                                <p class="sales-amount">
 | 
				
			||||||
                                    {!! format_money_pdf($invoice->total) !!}
 | 
					                                    {!! format_money_pdf($invoice->total) !!}
 | 
				
			||||||
                                </p>
 | 
					                                </p>
 | 
				
			||||||
                            </td>
 | 
					                            </td>
 | 
				
			||||||
@ -236,10 +175,10 @@
 | 
				
			|||||||
                    @endforeach
 | 
					                    @endforeach
 | 
				
			||||||
                </table>
 | 
					                </table>
 | 
				
			||||||
            </div>
 | 
					            </div>
 | 
				
			||||||
                <table class="expense-total-table">
 | 
					            <table class="sales-total-indicator-table">
 | 
				
			||||||
                <tr>
 | 
					                <tr>
 | 
				
			||||||
                        <td class="expense-total-cell">
 | 
					                    <td class="sales-total-cell">
 | 
				
			||||||
                            <p class="expense-total">
 | 
					                        <p class="sales-total-amount">
 | 
				
			||||||
                            {!! format_money_pdf($customer->totalAmount) !!}
 | 
					                            {!! format_money_pdf($customer->totalAmount) !!}
 | 
				
			||||||
                        </p>
 | 
					                        </p>
 | 
				
			||||||
                    </td>
 | 
					                    </td>
 | 
				
			||||||
@ -249,18 +188,17 @@
 | 
				
			|||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        <table class="profit-table">
 | 
					    <table class="report-footer">
 | 
				
			||||||
        <tr>
 | 
					        <tr>
 | 
				
			||||||
            <td>
 | 
					            <td>
 | 
				
			||||||
                    <p class="profit-title">TOTAL SALES</p>
 | 
					                <p class="report-footer-label">TOTAL SALES</p>
 | 
				
			||||||
            </td>
 | 
					            </td>
 | 
				
			||||||
            <td>
 | 
					            <td>
 | 
				
			||||||
                    <p class="profit-money">
 | 
					                <p class="report-footer-value">
 | 
				
			||||||
                    {!! format_money_pdf($totalAmount) !!}
 | 
					                    {!! format_money_pdf($totalAmount) !!}
 | 
				
			||||||
                </p>
 | 
					                </p>
 | 
				
			||||||
            </td>
 | 
					            </td>
 | 
				
			||||||
        </tr>
 | 
					        </tr>
 | 
				
			||||||
    </table>
 | 
					    </table>
 | 
				
			||||||
    </div>
 | 
					 | 
				
			||||||
</body>
 | 
					</body>
 | 
				
			||||||
</html>
 | 
					</html>
 | 
				
			||||||
 | 
				
			|||||||
@ -2,35 +2,24 @@
 | 
				
			|||||||
<html lang="en">
 | 
					<html lang="en">
 | 
				
			||||||
<head>
 | 
					<head>
 | 
				
			||||||
    <title>Sales Item Report</title>
 | 
					    <title>Sales Item Report</title>
 | 
				
			||||||
    {{-- <link href="https://fonts.googleapis.com/css?family=Poppins&display=swap" rel="stylesheet"> --}}
 | 
					 | 
				
			||||||
    <style type="text/css">
 | 
					    <style type="text/css">
 | 
				
			||||||
        body {
 | 
					        body {
 | 
				
			||||||
            font-family: "DejaVu Sans";
 | 
					            font-family: "DejaVu Sans";
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        
 | 
					        
 | 
				
			||||||
        /* html {
 | 
					 | 
				
			||||||
            margin: 0px;
 | 
					 | 
				
			||||||
            padding: 0px;
 | 
					 | 
				
			||||||
        } */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        table {
 | 
					        table {
 | 
				
			||||||
            border-collapse: collapse;
 | 
					            border-collapse: collapse;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .main-container {
 | 
					 | 
				
			||||||
            /* padding: 30px 80px; */
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        .sub-container{
 | 
					        .sub-container{
 | 
				
			||||||
            padding: 0px 20px;
 | 
					            padding: 0px 20px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .header {
 | 
					        .report-header {
 | 
				
			||||||
            width: 100%;
 | 
					            width: 100%;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .heading-text {
 | 
					        .heading-text {
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: 600;
 | 
					            font-weight: 600;
 | 
				
			||||||
            font-size: 24px;
 | 
					            font-size: 24px;
 | 
				
			||||||
            color: #5851D8;
 | 
					            color: #5851D8;
 | 
				
			||||||
@ -41,7 +30,6 @@
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .heading-date-range {
 | 
					        .heading-date-range {
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: 600;
 | 
					            font-weight: 600;
 | 
				
			||||||
            font-size: 15px;
 | 
					            font-size: 15px;
 | 
				
			||||||
            color: #A5ACC1;
 | 
					            color: #A5ACC1;
 | 
				
			||||||
@ -52,7 +40,6 @@
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .sub-heading-text {
 | 
					        .sub-heading-text {
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: 600;
 | 
					            font-weight: 600;
 | 
				
			||||||
            font-size: 16px;
 | 
					            font-size: 16px;
 | 
				
			||||||
            line-height: 21px;
 | 
					            line-height: 21px;
 | 
				
			||||||
@ -62,90 +49,55 @@
 | 
				
			|||||||
            margin-top: 30px;
 | 
					            margin-top: 30px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .income-table {
 | 
					        .sales-items-title {
 | 
				
			||||||
            margin-top: 53px;
 | 
					 | 
				
			||||||
            width: 100%;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        .income-title {
 | 
					 | 
				
			||||||
            padding: 0px;
 | 
					 | 
				
			||||||
            margin: 0px;
 | 
					 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 16px;
 | 
					 | 
				
			||||||
            line-height: 21px;
 | 
					 | 
				
			||||||
            color: #040405;
 | 
					 | 
				
			||||||
            text-align: left;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        .income-money {
 | 
					 | 
				
			||||||
            padding: 0px;
 | 
					 | 
				
			||||||
            margin: 0px;
 | 
					 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: 500;
 | 
					 | 
				
			||||||
            font-size: 16px;
 | 
					 | 
				
			||||||
            line-height: 21px;
 | 
					 | 
				
			||||||
            text-align: right;
 | 
					 | 
				
			||||||
            color: #040405;
 | 
					 | 
				
			||||||
            text-align: right;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        .expenses-title {
 | 
					 | 
				
			||||||
            margin-top: 20px;
 | 
					            margin-top: 20px;
 | 
				
			||||||
            padding-left: 3px;
 | 
					            padding-left: 3px;
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 16px;
 | 
					            font-size: 16px;
 | 
				
			||||||
            line-height: 21px;
 | 
					            line-height: 21px;
 | 
				
			||||||
            color: #040405;
 | 
					            color: #040405;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .expenses-table-container {
 | 
					        .items-table-container {
 | 
				
			||||||
            padding-left: 10px;
 | 
					            padding-left: 10px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .expenses-table {
 | 
					        .items-table {
 | 
				
			||||||
            width: 100%;
 | 
					            width: 100%;
 | 
				
			||||||
            padding-bottom: 10px;
 | 
					            padding-bottom: 10px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .expense-title {
 | 
					        .item-title {
 | 
				
			||||||
            padding: 0px;
 | 
					            padding: 0px;
 | 
				
			||||||
            margin: 0px;
 | 
					            margin: 0px;
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 14px;
 | 
					            font-size: 14px;
 | 
				
			||||||
            line-height: 21px;
 | 
					            line-height: 21px;
 | 
				
			||||||
            color: #595959;
 | 
					            color: #595959;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .expense-money {
 | 
					        .item-sales-amount {
 | 
				
			||||||
            padding: 0px;
 | 
					            padding: 0px;
 | 
				
			||||||
            margin: 0px;
 | 
					            margin: 0px;
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 14px;
 | 
					            font-size: 14px;
 | 
				
			||||||
            line-height: 21px;
 | 
					            line-height: 21px;
 | 
				
			||||||
            text-align: right;
 | 
					            text-align: right;
 | 
				
			||||||
            color: #595959;
 | 
					            color: #595959;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .expense-total-table {
 | 
					        .sales-total-indicator-table {
 | 
				
			||||||
            border-top: 1px solid #EAF1FB;
 | 
					            border-top: 1px solid #EAF1FB;
 | 
				
			||||||
            width: 100%;
 | 
					            width: 100%;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .expense-total-cell {
 | 
					        .sales-total-cell {
 | 
				
			||||||
            padding-top: 10px;
 | 
					            padding-top: 10px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .expense-total {
 | 
					        .sales-total-amount {
 | 
				
			||||||
            padding-top: 10px;
 | 
					            padding-top: 10px;
 | 
				
			||||||
            padding-right: 30px;
 | 
					            padding-right: 30px;
 | 
				
			||||||
            padding: 0px;
 | 
					            padding: 0px;
 | 
				
			||||||
            margin: 0px;
 | 
					            margin: 0px;
 | 
				
			||||||
            text-align: right;
 | 
					            text-align: right;
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: 500;
 | 
					            font-weight: 500;
 | 
				
			||||||
            font-size: 16px;
 | 
					            font-size: 16px;
 | 
				
			||||||
            line-height: 21px;
 | 
					            line-height: 21px;
 | 
				
			||||||
@ -153,7 +105,7 @@
 | 
				
			|||||||
            color: #040405;
 | 
					            color: #040405;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .profit-table {
 | 
					        .report-footer {
 | 
				
			||||||
            width: 100%;
 | 
					            width: 100%;
 | 
				
			||||||
            margin-top: 40px;
 | 
					            margin-top: 40px;
 | 
				
			||||||
            padding: 15px 20px;
 | 
					            padding: 15px 20px;
 | 
				
			||||||
@ -161,22 +113,20 @@
 | 
				
			|||||||
            box-sizing: border-box;
 | 
					            box-sizing: border-box;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .profit-title {
 | 
					        .report-footer-label {
 | 
				
			||||||
            padding: 0px;
 | 
					            padding: 0px;
 | 
				
			||||||
            margin: 0px;
 | 
					            margin: 0px;
 | 
				
			||||||
            text-align: left;
 | 
					            text-align: left;
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: 600;
 | 
					            font-weight: 600;
 | 
				
			||||||
            font-size: 16px;
 | 
					            font-size: 16px;
 | 
				
			||||||
            line-height: 21px;
 | 
					            line-height: 21px;
 | 
				
			||||||
            color: #595959;
 | 
					            color: #595959;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .profit-money {
 | 
					        .report-footer-value {
 | 
				
			||||||
            padding: 0px;
 | 
					            padding: 0px;
 | 
				
			||||||
            margin: 0px;
 | 
					            margin: 0px;
 | 
				
			||||||
            text-align: right;
 | 
					            text-align: right;
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: 500;
 | 
					            font-weight: 500;
 | 
				
			||||||
            font-size: 20px;
 | 
					            font-size: 20px;
 | 
				
			||||||
            line-height: 21px;
 | 
					            line-height: 21px;
 | 
				
			||||||
@ -188,9 +138,8 @@
 | 
				
			|||||||
    </style>
 | 
					    </style>
 | 
				
			||||||
</head>
 | 
					</head>
 | 
				
			||||||
<body>
 | 
					<body>
 | 
				
			||||||
    <div class="main-container">
 | 
					 | 
				
			||||||
    <div class="sub-container">
 | 
					    <div class="sub-container">
 | 
				
			||||||
            <table class="header">
 | 
					        <table class="report-header">
 | 
				
			||||||
            <tr>
 | 
					            <tr>
 | 
				
			||||||
                <td>
 | 
					                <td>
 | 
				
			||||||
                    <p class="heading-text">{{ $company->name }}</p>
 | 
					                    <p class="heading-text">{{ $company->name }}</p>
 | 
				
			||||||
@ -206,28 +155,18 @@
 | 
				
			|||||||
            </tr>
 | 
					            </tr>
 | 
				
			||||||
        </table>
 | 
					        </table>
 | 
				
			||||||
        
 | 
					        
 | 
				
			||||||
            {{-- <table class="income-table">
 | 
					        <p class="sales-items-title">Items</p>
 | 
				
			||||||
                <tr>
 | 
					 | 
				
			||||||
                    <td>
 | 
					 | 
				
			||||||
                        <p class="income-title">Income</p>
 | 
					 | 
				
			||||||
                    </td>
 | 
					 | 
				
			||||||
                    <td>
 | 
					 | 
				
			||||||
                        <p class="income-money">{{ $income }}</p>
 | 
					 | 
				
			||||||
                    </td>
 | 
					 | 
				
			||||||
                </tr>
 | 
					 | 
				
			||||||
            </table> --}}
 | 
					 | 
				
			||||||
            <p class="expenses-title">Items</p>
 | 
					 | 
				
			||||||
        @foreach ($items as $item)
 | 
					        @foreach ($items as $item)
 | 
				
			||||||
                <div class="expenses-table-container">
 | 
					            <div class="items-table-container">
 | 
				
			||||||
                    <table class="expenses-table">
 | 
					                <table class="items-table">
 | 
				
			||||||
                    <tr>
 | 
					                    <tr>
 | 
				
			||||||
                        <td>
 | 
					                        <td>
 | 
				
			||||||
                                <p class="expense-title">
 | 
					                            <p class="item-title">
 | 
				
			||||||
                                {{ $item->name }}
 | 
					                                {{ $item->name }}
 | 
				
			||||||
                            </p>
 | 
					                            </p>
 | 
				
			||||||
                        </td>
 | 
					                        </td>
 | 
				
			||||||
                        <td>
 | 
					                        <td>
 | 
				
			||||||
                                <p class="expense-money">
 | 
					                            <p class="item-sales-amount">
 | 
				
			||||||
                                {!! format_money_pdf($item->total_amount) !!}
 | 
					                                {!! format_money_pdf($item->total_amount) !!}
 | 
				
			||||||
                            </p>
 | 
					                            </p>
 | 
				
			||||||
                        </td>
 | 
					                        </td>
 | 
				
			||||||
@ -236,10 +175,10 @@
 | 
				
			|||||||
            </div>
 | 
					            </div>
 | 
				
			||||||
        @endforeach
 | 
					        @endforeach
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                <table class="expense-total-table">
 | 
					            <table class="sales-total-indicator-table">
 | 
				
			||||||
                <tr>
 | 
					                <tr>
 | 
				
			||||||
                        <td class="expense-total-cell">
 | 
					                    <td class="sales-total-cell">
 | 
				
			||||||
                            <p class="expense-total">
 | 
					                        <p class="sales-total-amount">
 | 
				
			||||||
                            {!! format_money_pdf($totalAmount) !!}
 | 
					                            {!! format_money_pdf($totalAmount) !!}
 | 
				
			||||||
                        </p>
 | 
					                        </p>
 | 
				
			||||||
                    </td>
 | 
					                    </td>
 | 
				
			||||||
@ -248,18 +187,17 @@
 | 
				
			|||||||
    </div>
 | 
					    </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        <table class="profit-table">
 | 
					    <table class="report-footer">
 | 
				
			||||||
        <tr>
 | 
					        <tr>
 | 
				
			||||||
            <td>
 | 
					            <td>
 | 
				
			||||||
                    <p class="profit-title">TOTAL SALES</p>
 | 
					                <p class="report-footer-label">TOTAL SALES</p>
 | 
				
			||||||
            </td>
 | 
					            </td>
 | 
				
			||||||
            <td>
 | 
					            <td>
 | 
				
			||||||
                    <p class="profit-money">
 | 
					                <p class="report-footer-value">
 | 
				
			||||||
                    {!! format_money_pdf($totalAmount) !!}
 | 
					                    {!! format_money_pdf($totalAmount) !!}
 | 
				
			||||||
                </p>
 | 
					                </p>
 | 
				
			||||||
            </td>
 | 
					            </td>
 | 
				
			||||||
        </tr>
 | 
					        </tr>
 | 
				
			||||||
    </table>
 | 
					    </table>
 | 
				
			||||||
    </div>
 | 
					 | 
				
			||||||
</body>
 | 
					</body>
 | 
				
			||||||
</html>
 | 
					</html>
 | 
				
			||||||
 | 
				
			|||||||
@ -2,36 +2,25 @@
 | 
				
			|||||||
<html lang="en">
 | 
					<html lang="en">
 | 
				
			||||||
<head>
 | 
					<head>
 | 
				
			||||||
    <title>Tax Summary Report</title>
 | 
					    <title>Tax Summary Report</title>
 | 
				
			||||||
    {{-- <link href="https://fonts.googleapis.com/css?family=Poppins&display=swap" rel="stylesheet"> --}}
 | 
					 | 
				
			||||||
    <style type="text/css">
 | 
					    <style type="text/css">
 | 
				
			||||||
        body {
 | 
					        body {
 | 
				
			||||||
            font-family: "DejaVu Sans";
 | 
					            font-family: "DejaVu Sans";
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        /* html {
 | 
					 | 
				
			||||||
            margin: 0px;
 | 
					 | 
				
			||||||
            padding: 0px;
 | 
					 | 
				
			||||||
        } */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        table {
 | 
					        table {
 | 
				
			||||||
            border-collapse: collapse;
 | 
					            border-collapse: collapse;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .main-container {
 | 
					 | 
				
			||||||
            /* padding: 30px 60px; */
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        .sub-container{
 | 
					        .sub-container{
 | 
				
			||||||
            padding: 0px 20px;
 | 
					            padding: 0px 20px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .header {
 | 
					        .report-header {
 | 
				
			||||||
            width: 100%;
 | 
					            width: 100%;
 | 
				
			||||||
            margin-bottom: 60px
 | 
					            margin-bottom: 60px
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .heading-text {
 | 
					        .heading-text {
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: 600;
 | 
					            font-weight: 600;
 | 
				
			||||||
            font-size: 24px;
 | 
					            font-size: 24px;
 | 
				
			||||||
            color: #5851D8;
 | 
					            color: #5851D8;
 | 
				
			||||||
@ -42,7 +31,6 @@
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .heading-date-range {
 | 
					        .heading-date-range {
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: 600;
 | 
					            font-weight: 600;
 | 
				
			||||||
            font-size: 15px;
 | 
					            font-size: 15px;
 | 
				
			||||||
            color: #A5ACC1;
 | 
					            color: #A5ACC1;
 | 
				
			||||||
@ -53,31 +41,17 @@
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .sub-heading-text {
 | 
					        .sub-heading-text {
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: 600;
 | 
					            font-weight: 600;
 | 
				
			||||||
            font-size: 16px;
 | 
					            font-size: 16px;
 | 
				
			||||||
            /* line-height: 21px; */
 | 
					 | 
				
			||||||
            color: #595959;
 | 
					            color: #595959;
 | 
				
			||||||
            padding: 0px;
 | 
					            padding: 0px;
 | 
				
			||||||
            margin: 0px;
 | 
					            margin: 0px;
 | 
				
			||||||
            margin-top: 6px;
 | 
					            margin-top: 6px;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .types-title {
 | 
					        .tax-types-title {
 | 
				
			||||||
            margin-top: 20px;
 | 
					            margin-top: 20px;
 | 
				
			||||||
            padding-left: 3px;
 | 
					            padding-left: 3px;
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 16px;
 | 
					 | 
				
			||||||
            line-height: 21px;
 | 
					 | 
				
			||||||
            color: #040405;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        .tax-title {
 | 
					 | 
				
			||||||
            margin-top: 60px;
 | 
					 | 
				
			||||||
            padding-left: 3px;
 | 
					 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 16px;
 | 
					            font-size: 16px;
 | 
				
			||||||
            line-height: 21px;
 | 
					            line-height: 21px;
 | 
				
			||||||
            color: #040405;
 | 
					            color: #040405;
 | 
				
			||||||
@ -95,18 +69,14 @@
 | 
				
			|||||||
        .tax-title {
 | 
					        .tax-title {
 | 
				
			||||||
            padding: 0px;
 | 
					            padding: 0px;
 | 
				
			||||||
            margin: 0px;
 | 
					            margin: 0px;
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 14px;
 | 
					            font-size: 14px;
 | 
				
			||||||
            line-height: 21px;
 | 
					            line-height: 21px;
 | 
				
			||||||
            color: #595959;
 | 
					            color: #595959;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .tax-money {
 | 
					        .tax-amount {
 | 
				
			||||||
            padding: 0px;
 | 
					            padding: 0px;
 | 
				
			||||||
            margin: 0px;
 | 
					            margin: 0px;
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: normal;
 | 
					 | 
				
			||||||
            font-size: 14px;
 | 
					            font-size: 14px;
 | 
				
			||||||
            line-height: 21px;
 | 
					            line-height: 21px;
 | 
				
			||||||
            text-align: right;
 | 
					            text-align: right;
 | 
				
			||||||
@ -129,7 +99,6 @@
 | 
				
			|||||||
            padding: 0px;
 | 
					            padding: 0px;
 | 
				
			||||||
            margin: 0px;
 | 
					            margin: 0px;
 | 
				
			||||||
            text-align: right;
 | 
					            text-align: right;
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: 500;
 | 
					            font-weight: 500;
 | 
				
			||||||
            font-size: 16px;
 | 
					            font-size: 16px;
 | 
				
			||||||
            line-height: 21px;
 | 
					            line-height: 21px;
 | 
				
			||||||
@ -137,7 +106,7 @@
 | 
				
			|||||||
            color: #040405;
 | 
					            color: #040405;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .total-tax-table {
 | 
					        .report-footer {
 | 
				
			||||||
            width: 100%;
 | 
					            width: 100%;
 | 
				
			||||||
            margin-top: 40px;
 | 
					            margin-top: 40px;
 | 
				
			||||||
            padding: 15px 20px;
 | 
					            padding: 15px 20px;
 | 
				
			||||||
@ -145,22 +114,20 @@
 | 
				
			|||||||
            box-sizing: border-box;
 | 
					            box-sizing: border-box;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .total-tax-title {
 | 
					        .report-footer-label {
 | 
				
			||||||
            padding: 0px;
 | 
					            padding: 0px;
 | 
				
			||||||
            margin: 0px;
 | 
					            margin: 0px;
 | 
				
			||||||
            text-align: left;
 | 
					            text-align: left;
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: 600;
 | 
					            font-weight: 600;
 | 
				
			||||||
            font-size: 16px;
 | 
					            font-size: 16px;
 | 
				
			||||||
            line-height: 21px;
 | 
					            line-height: 21px;
 | 
				
			||||||
            color: #595959;
 | 
					            color: #595959;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        .total-tax-money {
 | 
					        .report-footer-value {
 | 
				
			||||||
            padding: 0px;
 | 
					            padding: 0px;
 | 
				
			||||||
            margin: 0px;
 | 
					            margin: 0px;
 | 
				
			||||||
            text-align: right;
 | 
					            text-align: right;
 | 
				
			||||||
            font-style: normal;
 | 
					 | 
				
			||||||
            font-weight: 500;
 | 
					            font-weight: 500;
 | 
				
			||||||
            font-size: 20px;
 | 
					            font-size: 20px;
 | 
				
			||||||
            line-height: 21px;
 | 
					            line-height: 21px;
 | 
				
			||||||
@ -169,9 +136,8 @@
 | 
				
			|||||||
    </style>
 | 
					    </style>
 | 
				
			||||||
</head>
 | 
					</head>
 | 
				
			||||||
<body>
 | 
					<body>
 | 
				
			||||||
    <div class="main-container">
 | 
					 | 
				
			||||||
    <div class="sub-container">
 | 
					    <div class="sub-container">
 | 
				
			||||||
            <table class="header">
 | 
					        <table class="report-header">
 | 
				
			||||||
            <tr>
 | 
					            <tr>
 | 
				
			||||||
                <td>
 | 
					                <td>
 | 
				
			||||||
                    <p class="heading-text">
 | 
					                    <p class="heading-text">
 | 
				
			||||||
@ -190,7 +156,7 @@
 | 
				
			|||||||
                </td>
 | 
					                </td>
 | 
				
			||||||
            </tr>
 | 
					            </tr>
 | 
				
			||||||
        </table>
 | 
					        </table>
 | 
				
			||||||
            <p class="types-title">Tax Types</p>
 | 
					        <p class="tax-types-title">Tax Types</p>
 | 
				
			||||||
        <div class="tax-table-container">
 | 
					        <div class="tax-table-container">
 | 
				
			||||||
            <table class="tax-table">
 | 
					            <table class="tax-table">
 | 
				
			||||||
                @foreach ($taxTypes as $tax)
 | 
					                @foreach ($taxTypes as $tax)
 | 
				
			||||||
@ -201,7 +167,7 @@
 | 
				
			|||||||
                            </p>
 | 
					                            </p>
 | 
				
			||||||
                        </td>
 | 
					                        </td>
 | 
				
			||||||
                        <td>
 | 
					                        <td>
 | 
				
			||||||
                                <p class="tax-money">
 | 
					                            <p class="tax-amount">
 | 
				
			||||||
                                {!! format_money_pdf($tax->total_tax_amount) !!}
 | 
					                                {!! format_money_pdf($tax->total_tax_amount) !!}
 | 
				
			||||||
                            </p>
 | 
					                            </p>
 | 
				
			||||||
                        </td>
 | 
					                        </td>
 | 
				
			||||||
@ -221,18 +187,17 @@
 | 
				
			|||||||
            </td>
 | 
					            </td>
 | 
				
			||||||
        </tr>
 | 
					        </tr>
 | 
				
			||||||
    </table>
 | 
					    </table>
 | 
				
			||||||
        <table class="total-tax-table">
 | 
					    <table class="report-footer">
 | 
				
			||||||
        <tr>
 | 
					        <tr>
 | 
				
			||||||
            <td>
 | 
					            <td>
 | 
				
			||||||
                    <p class="total-tax-title">TOTAL TAX</p>
 | 
					                <p class="report-footer-label">TOTAL TAX</p>
 | 
				
			||||||
            </td>
 | 
					            </td>
 | 
				
			||||||
            <td>
 | 
					            <td>
 | 
				
			||||||
                    <p class="total-tax-money">
 | 
					                <p class="report-footer-value">
 | 
				
			||||||
                    {!! format_money_pdf($totalTaxAmount) !!}
 | 
					                    {!! format_money_pdf($totalTaxAmount) !!}
 | 
				
			||||||
                </p>
 | 
					                </p>
 | 
				
			||||||
            </td>
 | 
					            </td>
 | 
				
			||||||
        </tr>
 | 
					        </tr>
 | 
				
			||||||
    </table>
 | 
					    </table>
 | 
				
			||||||
    </div>
 | 
					 | 
				
			||||||
</body>
 | 
					</body>
 | 
				
			||||||
</html>
 | 
					</html>
 | 
				
			||||||
 | 
				
			|||||||
@ -16,7 +16,7 @@
 | 
				
			|||||||
    {{-- Subcopy --}}
 | 
					    {{-- Subcopy --}}
 | 
				
			||||||
    @slot('subcopy')
 | 
					    @slot('subcopy')
 | 
				
			||||||
        @component('mail::subcopy')
 | 
					        @component('mail::subcopy')
 | 
				
			||||||
            You have received a new estimate from <span class="company-name">{{$data['company']['name']}}</span>
 | 
					            You have received a new estimate from <b>{{$data['company']['name']}}</b>
 | 
				
			||||||
            @component('mail::button', ['url' => url('/customer/estimates/pdf/'.$data['estimate']['unique_hash'])])
 | 
					            @component('mail::button', ['url' => url('/customer/estimates/pdf/'.$data['estimate']['unique_hash'])])
 | 
				
			||||||
                View Estimate
 | 
					                View Estimate
 | 
				
			||||||
            @endcomponent
 | 
					            @endcomponent
 | 
				
			||||||
 | 
				
			|||||||
@ -16,7 +16,7 @@
 | 
				
			|||||||
    {{-- Subcopy --}}
 | 
					    {{-- Subcopy --}}
 | 
				
			||||||
    @slot('subcopy')
 | 
					    @slot('subcopy')
 | 
				
			||||||
        @component('mail::subcopy')
 | 
					        @component('mail::subcopy')
 | 
				
			||||||
            You have received a new invoice from <span class="company-name">{{$data['company']['name']}}</span>
 | 
					            You have received a new invoice from <b>{{$data['company']['name']}}</b>
 | 
				
			||||||
            @component('mail::button', ['url' => url('/customer/invoices/pdf/'.$data['invoice']['unique_hash'])])
 | 
					            @component('mail::button', ['url' => url('/customer/invoices/pdf/'.$data['invoice']['unique_hash'])])
 | 
				
			||||||
                View Invoice
 | 
					                View Invoice
 | 
				
			||||||
            @endcomponent
 | 
					            @endcomponent
 | 
				
			||||||
 | 
				
			|||||||
@ -16,7 +16,7 @@
 | 
				
			|||||||
    {{-- Subcopy --}}
 | 
					    {{-- Subcopy --}}
 | 
				
			||||||
    @slot('subcopy')
 | 
					    @slot('subcopy')
 | 
				
			||||||
        @component('mail::subcopy')
 | 
					        @component('mail::subcopy')
 | 
				
			||||||
            You have received a new payment from <span class="company-name">{{$data['company']['name']}}</span>
 | 
					            You have received a new payment from <b>{{$data['company']['name']}}</b>
 | 
				
			||||||
            @component('mail::button', ['url' => url('/payments/pdf/'.$data['payment']['unique_hash'])])
 | 
					            @component('mail::button', ['url' => url('/payments/pdf/'.$data['payment']['unique_hash'])])
 | 
				
			||||||
                View Payment
 | 
					                View Payment
 | 
				
			||||||
            @endcomponent
 | 
					            @endcomponent
 | 
				
			||||||
 | 
				
			|||||||
@ -158,8 +158,6 @@ img {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.subcopy p {
 | 
					.subcopy p {
 | 
				
			||||||
    display: flex;
 | 
					 | 
				
			||||||
    justify-content: center;
 | 
					 | 
				
			||||||
    text-align: center;
 | 
					    text-align: center;
 | 
				
			||||||
    font-size: 20px;
 | 
					    font-size: 20px;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -122,23 +122,41 @@ Route::group(['middleware' => 'api'], function () {
 | 
				
			|||||||
      'middleware' => 'admin'
 | 
					      'middleware' => 'admin'
 | 
				
			||||||
    ], function () {
 | 
					    ], function () {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // Self Update
 | 
				
			||||||
        // Auto update routes
 | 
					 | 
				
			||||||
        //----------------------------------
 | 
					        //----------------------------------
 | 
				
			||||||
        Route::post('/update', [
 | 
					
 | 
				
			||||||
            'as' => 'auto.update',
 | 
					        Route::get('/check/update', [
 | 
				
			||||||
            'uses' => 'UpdateController@update'
 | 
					            'as' => 'update.check',
 | 
				
			||||||
 | 
					            'uses' => 'UpdateController@checkLatestVersion'
 | 
				
			||||||
 | 
					        ]);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Route::post('/update/download', [
 | 
				
			||||||
 | 
					            'as' => 'update.download',
 | 
				
			||||||
 | 
					            'uses' => 'UpdateController@download'
 | 
				
			||||||
 | 
					        ]);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Route::post('/update/unzip', [
 | 
				
			||||||
 | 
					            'as' => 'update.unzip',
 | 
				
			||||||
 | 
					            'uses' => 'UpdateController@unzip'
 | 
				
			||||||
 | 
					        ]);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Route::post('/update/copy', [
 | 
				
			||||||
 | 
					            'as' => 'update.copy',
 | 
				
			||||||
 | 
					            'uses' => 'UpdateController@copyFiles'
 | 
				
			||||||
 | 
					        ]);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Route::post('/update/migrate', [
 | 
				
			||||||
 | 
					            'as' => 'update.migrate',
 | 
				
			||||||
 | 
					            'uses' => 'UpdateController@migrate'
 | 
				
			||||||
        ]);
 | 
					        ]);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        Route::post('/update/finish', [
 | 
					        Route::post('/update/finish', [
 | 
				
			||||||
            'as' => 'auto.update.finish',
 | 
					            'as' => 'update.finish',
 | 
				
			||||||
            'uses' => 'UpdateController@finishUpdate'
 | 
					            'uses' => 'UpdateController@finishUpdate'
 | 
				
			||||||
        ]);
 | 
					        ]);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        Route::get('/check/update', [
 | 
					        // Bootstrap
 | 
				
			||||||
            'as' => 'check.update',
 | 
					        //----------------------------------
 | 
				
			||||||
            'uses' => 'UpdateController@checkLatestVersion'
 | 
					 | 
				
			||||||
        ]);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        Route::get('/bootstrap', [
 | 
					        Route::get('/bootstrap', [
 | 
				
			||||||
            'as' => 'bootstrap',
 | 
					            'as' => 'bootstrap',
 | 
				
			||||||
 | 
				
			|||||||
@ -6,6 +6,7 @@
 | 
				
			|||||||
|--------------------------------------------------------------------------
 | 
					|--------------------------------------------------------------------------
 | 
				
			||||||
|
 | 
					|
 | 
				
			||||||
*/
 | 
					*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Route::group(['prefix' => 'reports'], function () {
 | 
					Route::group(['prefix' => 'reports'], function () {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // sales report by customer
 | 
					    // sales report by customer
 | 
				
			||||||
@ -46,7 +47,6 @@ Route::group(['prefix' => 'reports'], function () {
 | 
				
			|||||||
        'as' => 'get.profit.loss',
 | 
					        'as' => 'get.profit.loss',
 | 
				
			||||||
        'uses' => 'ReportController@profitLossReport'
 | 
					        'uses' => 'ReportController@profitLossReport'
 | 
				
			||||||
    ]);
 | 
					    ]);
 | 
				
			||||||
 | 
					 | 
				
			||||||
});
 | 
					});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -88,7 +88,7 @@ Route::get('/expenses/{id}/receipt/{hash}', [
 | 
				
			|||||||
    'uses' => 'ExpensesController@downloadReceipt'
 | 
					    'uses' => 'ExpensesController@downloadReceipt'
 | 
				
			||||||
]);
 | 
					]);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Setup for instalation of app
 | 
					// Setup for installation of app
 | 
				
			||||||
// ----------------------------------------------
 | 
					// ----------------------------------------------
 | 
				
			||||||
Route::get('/on-boarding', function () {
 | 
					Route::get('/on-boarding', function () {
 | 
				
			||||||
    return view('app');
 | 
					    return view('app');
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user