136 lines
5.9 KiB
HTML
136 lines
5.9 KiB
HTML
<div class="flex flex-auto flex-row justify-around content-center items-center lg:max-w-[50%]">
|
|
<mat-card class="flex-auto">
|
|
<mat-card-title-group>
|
|
<mat-card-title>Product</mat-card-title>
|
|
</mat-card-title-group>
|
|
<mat-card-content>
|
|
<form [formGroup]="form" class="flex flex-col">
|
|
<div class="flex flex-row justify-around content-start items-start">
|
|
<mat-form-field class="flex-auto">
|
|
<mat-label>Code</mat-label>
|
|
<input matInput placeholder="Code" formControlName="code" />
|
|
</mat-form-field>
|
|
</div>
|
|
<div class="flex flex-row justify-around content-start items-start">
|
|
<mat-form-field class="flex-auto basis-4/5 mr-5">
|
|
<mat-label>Name</mat-label>
|
|
<input matInput #nameElement placeholder="Name" formControlName="name" />
|
|
</mat-form-field>
|
|
<mat-form-field class="flex-auto basis-1/5">
|
|
<mat-label>Fraction Units</mat-label>
|
|
<input matInput placeholder="Fraction Units" formControlName="fractionUnits" />
|
|
</mat-form-field>
|
|
</div>
|
|
<div class="flex flex-row justify-around content-start items-start">
|
|
<mat-checkbox formControlName="isPurchased" class="flex-auto mr-5"
|
|
>Is Purchased?</mat-checkbox
|
|
>
|
|
<mat-checkbox formControlName="isSold" class="flex-auto mr-5">Is Sold?</mat-checkbox>
|
|
<mat-checkbox formControlName="isActive" class="flex-auto">Is Active?</mat-checkbox>
|
|
</div>
|
|
<div class="flex flex-row justify-around content-start items-start">
|
|
<mat-form-field class="flex-auto">
|
|
<mat-label>Product Type</mat-label>
|
|
<mat-select placeholder="Product Group" formControlName="productGroup">
|
|
<mat-option *ngFor="let pg of productGroups" [value]="pg.id">
|
|
{{ pg.name }}
|
|
</mat-option>
|
|
</mat-select>
|
|
</mat-form-field>
|
|
</div>
|
|
<h2>Stock Keeping Units</h2>
|
|
<div
|
|
formGroupName="addRow"
|
|
class="flex flex-row flex-wrap justify-around content-start items-start sm:max-lg:flex-col"
|
|
>
|
|
<mat-form-field class="flex-auto mr-5">
|
|
<mat-label>Units</mat-label>
|
|
<input matInput placeholder="Units" formControlName="units" />
|
|
</mat-form-field>
|
|
<mat-form-field class="flex-auto mr-5">
|
|
<mat-label>Fraction</mat-label>
|
|
<input matInput type="number" placeholder="Fraction" formControlName="fraction" />
|
|
</mat-form-field>
|
|
<mat-form-field class="flex-auto mr-5">
|
|
<mat-label>Yield</mat-label>
|
|
<input matInput type="number" placeholder="Yield" formControlName="productYield" />
|
|
</mat-form-field>
|
|
<mat-form-field class="flex-auto mr-5">
|
|
<mat-label>{{ item.isPurchased ? 'Purchase Price' : 'Cost Price' }}</mat-label>
|
|
<input
|
|
matInput
|
|
type="number"
|
|
placeholder="{{ item.isPurchased ? 'Purchase Price' : 'Cost Price' }}"
|
|
formControlName="costPrice"
|
|
/>
|
|
</mat-form-field>
|
|
<mat-form-field class="flex-auto mr-5">
|
|
<mat-label>Sale Price</mat-label>
|
|
<input matInput type="number" placeholder="Sale Price" formControlName="salePrice" />
|
|
</mat-form-field>
|
|
<button mat-raised-button color="primary" (click)="addRow()" class="flex-auto">
|
|
Add
|
|
</button>
|
|
</div>
|
|
</form>
|
|
<mat-table [dataSource]="dataSource" aria-label="Elements">
|
|
<!-- Units Column -->
|
|
<ng-container matColumnDef="units">
|
|
<mat-header-cell *matHeaderCellDef>Units</mat-header-cell>
|
|
<mat-cell *matCellDef="let row">{{ row.units }}</mat-cell>
|
|
</ng-container>
|
|
|
|
<!-- Fraction Column -->
|
|
<ng-container matColumnDef="fraction">
|
|
<mat-header-cell *matHeaderCellDef>Fraction</mat-header-cell>
|
|
<mat-cell *matCellDef="let row">{{ row.fraction }}</mat-cell>
|
|
</ng-container>
|
|
|
|
<!-- Yield Column -->
|
|
<ng-container matColumnDef="yield">
|
|
<mat-header-cell *matHeaderCellDef class="right">Yield</mat-header-cell>
|
|
<mat-cell *matCellDef="let row" class="right">{{ row.productYield }}</mat-cell>
|
|
</ng-container>
|
|
|
|
<!-- Cost Price Column -->
|
|
<ng-container matColumnDef="costPrice">
|
|
<mat-header-cell *matHeaderCellDef class="right">Cost Price</mat-header-cell>
|
|
<mat-cell *matCellDef="let row" class="right">{{
|
|
row.costPrice | currency: 'INR'
|
|
}}</mat-cell>
|
|
</ng-container>
|
|
|
|
<!-- Sale Price Column -->
|
|
<ng-container matColumnDef="salePrice">
|
|
<mat-header-cell *matHeaderCellDef class="right">Sale Price</mat-header-cell>
|
|
<mat-cell *matCellDef="let row" class="right">{{
|
|
row.salePrice | currency: 'INR'
|
|
}}</mat-cell>
|
|
</ng-container>
|
|
|
|
<!-- Action Column -->
|
|
<ng-container matColumnDef="action">
|
|
<mat-header-cell *matHeaderCellDef class="center">Action</mat-header-cell>
|
|
<mat-cell *matCellDef="let row" class="center">
|
|
<button mat-icon-button tabindex="-1" (click)="editRow(row)">
|
|
<mat-icon>edit</mat-icon>
|
|
</button>
|
|
<button mat-icon-button tabindex="-1" color="warn" (click)="deleteRow(row)">
|
|
<mat-icon>delete</mat-icon>
|
|
</button>
|
|
</mat-cell>
|
|
</ng-container>
|
|
|
|
<mat-header-row *matHeaderRowDef="displayedColumns"></mat-header-row>
|
|
<mat-row *matRowDef="let row; columns: displayedColumns"></mat-row>
|
|
</mat-table>
|
|
</mat-card-content>
|
|
<mat-card-actions>
|
|
<button mat-raised-button color="primary" (click)="save()">Save</button>
|
|
<button mat-raised-button color="warn" (click)="confirmDelete()" *ngIf="!!item.id">
|
|
Delete
|
|
</button>
|
|
</mat-card-actions>
|
|
</mat-card>
|
|
</div>
|