Loading admin/website-angular/src/app/@shared/warehouse/forms/basic-info/basic-info-form.component.html +26 −0 Original line number Diff line number Diff line Loading @@ -192,5 +192,31 @@ </div> </div> </div> <!-- TODO add translate --> <div *ngIf="hasRestrictedCarriers.value && carriersIds?.value.length" class="form-group row" > <label class="col-sm-2 control-label">Delivery</label> <div class="col-sm-9"> <nb-radio-group [(value)]="delivery" class="row m-0" name="size" > <nb-radio name="size" [value]="'all'"> Use All Carriers </nb-radio> <nb-radio name="size" [value]="'onlyStore'"> Use Only Store Carriers </nb-radio> <nb-radio name="size" [value]="'preferStore'"> Prefer Store Carriers </nb-radio> </nb-radio-group> </div> </div> </fieldset> </div> admin/website-angular/src/app/@shared/warehouse/forms/basic-info/basic-info-form.component.ts +71 −2 Original line number Diff line number Diff line Loading @@ -24,6 +24,8 @@ export type WarehouseBasicInfo = Pick< | 'username' | 'hasRestrictedCarriers' | 'carriersIds' | 'useOnlyRestrictedCarriersForDelivery' | 'preferRestrictedCarriersForDelivery' >; @Component({ Loading @@ -44,6 +46,8 @@ export class BasicInfoFormComponent implements OnInit { carriersOptions: IMultiSelectOption[]; private _delivery: 'all' | 'onlyStore' | 'preferStore' = 'all'; static buildForm(formBuilder: FormBuilder): FormGroup { // would be used in the parent component and injected into this.form return formBuilder.group({ Loading Loading @@ -78,6 +82,8 @@ export class BasicInfoFormComponent implements OnInit { username: ['', [Validators.required]], hasRestrictedCarriers: [false, [Validators.required]], useOnlyRestrictedCarriersForDelivery: [false], preferRestrictedCarriersForDelivery: [false], carriersIds: [[]] }); } Loading @@ -95,6 +101,8 @@ export class BasicInfoFormComponent implements OnInit { hasRestrictedCarriers: boolean; carriersIds: string[]; useOnlyRestrictedCarriersForDelivery: boolean; preferRestrictedCarriersForDelivery: boolean; }; if (!basicInfo.logo) { Loading @@ -112,20 +120,54 @@ export class BasicInfoFormComponent implements OnInit { hasRestrictedCarriers: basicInfo.hasRestrictedCarriers, carriersIds: basicInfo.carriersIds } : {}) : {}), ...(basicInfo.hasRestrictedCarriers && basicInfo.carriersIds && basicInfo.carriersIds.length ? { useOnlyRestrictedCarriersForDelivery: basicInfo.useOnlyRestrictedCarriersForDelivery, preferRestrictedCarriersForDelivery: basicInfo.preferRestrictedCarriersForDelivery } : { useOnlyRestrictedCarriersForDelivery: false, preferRestrictedCarriersForDelivery: false }) }; } setValue<T extends WarehouseBasicInfo>(basicInfo: T) { FormHelpers.deepMark(this.form, 'dirty'); basicInfo = Object.assign( { useOnlyRestrictedCarriersForDelivery: false, preferRestrictedCarriersForDelivery: false }, basicInfo ); this.form.setValue( pick(basicInfo, [ ...Object.keys(this.getValue()), 'hasRestrictedCarriers', 'carriersIds' 'carriersIds', 'useOnlyRestrictedCarriersForDelivery', 'preferRestrictedCarriersForDelivery' ]) ); const onlyStore = basicInfo.useOnlyRestrictedCarriersForDelivery; const preferStore = basicInfo.preferRestrictedCarriersForDelivery; if (onlyStore) { this.delivery = 'onlyStore'; } else if (preferStore) { this.delivery = 'preferStore'; } else { this.delivery = 'all'; } } getPassword(): string { Loading Loading @@ -169,6 +211,33 @@ export class BasicInfoFormComponent implements OnInit { return this.form.get('carriersIds'); } get useOnlyRestrictedCarriersForDelivery() { return this.form.get('useOnlyRestrictedCarriersForDelivery'); } get preferRestrictedCarriersForDelivery() { return this.form.get('preferRestrictedCarriersForDelivery'); } get delivery() { return this._delivery; } set delivery(value) { this._delivery = value; this.useOnlyRestrictedCarriersForDelivery.setValue(false); this.preferRestrictedCarriersForDelivery.setValue(false); switch (value) { case 'onlyStore': this.useOnlyRestrictedCarriersForDelivery.setValue(true); break; case 'preferStore': this.preferRestrictedCarriersForDelivery.setValue(true); break; } } get showLogoMeta() { return this.logo && this.logo.value !== ''; } Loading admin/website-angular/src/app/@shared/warehouse/forms/warehouse-manage-tabs/details/warehouse-manage-tabs-details.component.html +26 −0 Original line number Diff line number Diff line Loading @@ -154,5 +154,31 @@ </div> </div> </div> <!-- TODO add translate --> <div *ngIf="hasRestrictedCarriers.value && carriersIds?.value.length" class="form-group row" > <label class="col-sm-2 control-label">Delivery</label> <div class="col-sm-9"> <nb-radio-group [(value)]="delivery" class="row m-0" name="size" > <nb-radio name="size" [value]="'all'"> Use All Carriers </nb-radio> <nb-radio name="size" [value]="'onlyStore'"> Use Only Store Carriers </nb-radio> <nb-radio name="size" [value]="'preferStore'"> Prefer Store Carriers </nb-radio> </nb-radio-group> </div> </div> </fieldset> </div> admin/website-angular/src/app/@shared/warehouse/forms/warehouse-manage-tabs/details/warehouse-manage-tabs-details.component.ts +71 −2 Original line number Diff line number Diff line Loading @@ -32,6 +32,8 @@ export type WarehouseManageTabsDetails = Pick< | 'carriersIds' | 'isManufacturing' | 'isCarrierRequired' | 'useOnlyRestrictedCarriersForDelivery' | 'preferRestrictedCarriersForDelivery' >; @Component({ Loading Loading @@ -67,6 +69,8 @@ export class WarehouseManageTabsDetailsComponent ) ); private _delivery: 'all' | 'onlyStore' | 'preferStore' = 'all'; constructor( private readonly _carrierRouter: CarrierRouter, private readonly _translateService: TranslateService Loading Loading @@ -99,6 +103,33 @@ export class WarehouseManageTabsDetailsComponent return this.form.get('isCarrierRequired'); } get useOnlyRestrictedCarriersForDelivery() { return this.form.get('useOnlyRestrictedCarriersForDelivery'); } get preferRestrictedCarriersForDelivery() { return this.form.get('preferRestrictedCarriersForDelivery'); } get delivery() { return this._delivery; } set delivery(value) { this._delivery = value; this.useOnlyRestrictedCarriersForDelivery.setValue(false); this.preferRestrictedCarriersForDelivery.setValue(false); switch (value) { case 'onlyStore': this.useOnlyRestrictedCarriersForDelivery.setValue(true); break; case 'preferStore': this.preferRestrictedCarriersForDelivery.setValue(true); break; } } static buildForm(formBuilder: FormBuilder): FormGroup { // would be used in the parent component and injected into this.form return formBuilder.group({ Loading Loading @@ -128,6 +159,8 @@ export class WarehouseManageTabsDetailsComponent isManufacturing: [true, [Validators.required]], isCarrierRequired: [true, [Validators.required]], hasRestrictedCarriers: [false, [Validators.required]], useOnlyRestrictedCarriersForDelivery: [false], preferRestrictedCarriersForDelivery: [false], carriersIds: [[]] }); } Loading @@ -149,6 +182,8 @@ export class WarehouseManageTabsDetailsComponent isCarrierRequired: boolean; hasRestrictedCarriers: boolean; carriersIds: string[]; useOnlyRestrictedCarriersForDelivery: boolean; preferRestrictedCarriersForDelivery: boolean; }; return { Loading @@ -162,20 +197,54 @@ export class WarehouseManageTabsDetailsComponent hasRestrictedCarriers: basicInfo.hasRestrictedCarriers, carriersIds: basicInfo.carriersIds } : {}) : {}), ...(basicInfo.hasRestrictedCarriers && basicInfo.carriersIds && basicInfo.carriersIds.length ? { useOnlyRestrictedCarriersForDelivery: basicInfo.useOnlyRestrictedCarriersForDelivery, preferRestrictedCarriersForDelivery: basicInfo.preferRestrictedCarriersForDelivery } : { useOnlyRestrictedCarriersForDelivery: false, preferRestrictedCarriersForDelivery: false }) }; } setValue<T extends WarehouseManageTabsDetails>(basicInfo: T) { FormHelpers.deepMark(this.form, 'dirty'); basicInfo = Object.assign( { useOnlyRestrictedCarriersForDelivery: false, preferRestrictedCarriersForDelivery: false }, basicInfo ); this.form.setValue( _.pick(basicInfo, [ ...Object.keys(this.getValue()), 'hasRestrictedCarriers', 'carriersIds' 'carriersIds', 'useOnlyRestrictedCarriersForDelivery', 'preferRestrictedCarriersForDelivery' ]) ); const onlyStore = basicInfo.useOnlyRestrictedCarriersForDelivery; const preferStore = basicInfo.preferRestrictedCarriersForDelivery; if (onlyStore) { this.delivery = 'onlyStore'; } else if (preferStore) { this.delivery = 'preferStore'; } else { this.delivery = 'all'; } } deleteImg() { Loading backend/api/src/graphql/warehouses/warehouses.types.graphql +6 −0 Original line number Diff line number Diff line Loading @@ -44,6 +44,8 @@ type Warehouse { usedCarriersIds: [String!] carriers: [Carrier!] # Resolved, if hasRestrictedCarriers is false -> returns null orderBarcodeType: Int useOnlyRestrictedCarriersForDelivery: Boolean preferRestrictedCarriersForDelivery: Boolean } input WarehouseCreateInput { Loading Loading @@ -76,6 +78,8 @@ input WarehouseCreateInput { hasRestrictedCarriers: Boolean carriersIds: [String!] usedCarriersIds: [String!] useOnlyRestrictedCarriersForDelivery: Boolean preferRestrictedCarriersForDelivery: Boolean } input WarehousesFindInput { Loading Loading @@ -109,6 +113,8 @@ input WarehousesFindInput { hasRestrictedCarriers: Boolean carriersIds: [String!] usedCarriersIds: [String!] useOnlyRestrictedCarriersForDelivery: Boolean preferRestrictedCarriersForDelivery: Boolean } type Query { Loading Loading
admin/website-angular/src/app/@shared/warehouse/forms/basic-info/basic-info-form.component.html +26 −0 Original line number Diff line number Diff line Loading @@ -192,5 +192,31 @@ </div> </div> </div> <!-- TODO add translate --> <div *ngIf="hasRestrictedCarriers.value && carriersIds?.value.length" class="form-group row" > <label class="col-sm-2 control-label">Delivery</label> <div class="col-sm-9"> <nb-radio-group [(value)]="delivery" class="row m-0" name="size" > <nb-radio name="size" [value]="'all'"> Use All Carriers </nb-radio> <nb-radio name="size" [value]="'onlyStore'"> Use Only Store Carriers </nb-radio> <nb-radio name="size" [value]="'preferStore'"> Prefer Store Carriers </nb-radio> </nb-radio-group> </div> </div> </fieldset> </div>
admin/website-angular/src/app/@shared/warehouse/forms/basic-info/basic-info-form.component.ts +71 −2 Original line number Diff line number Diff line Loading @@ -24,6 +24,8 @@ export type WarehouseBasicInfo = Pick< | 'username' | 'hasRestrictedCarriers' | 'carriersIds' | 'useOnlyRestrictedCarriersForDelivery' | 'preferRestrictedCarriersForDelivery' >; @Component({ Loading @@ -44,6 +46,8 @@ export class BasicInfoFormComponent implements OnInit { carriersOptions: IMultiSelectOption[]; private _delivery: 'all' | 'onlyStore' | 'preferStore' = 'all'; static buildForm(formBuilder: FormBuilder): FormGroup { // would be used in the parent component and injected into this.form return formBuilder.group({ Loading Loading @@ -78,6 +82,8 @@ export class BasicInfoFormComponent implements OnInit { username: ['', [Validators.required]], hasRestrictedCarriers: [false, [Validators.required]], useOnlyRestrictedCarriersForDelivery: [false], preferRestrictedCarriersForDelivery: [false], carriersIds: [[]] }); } Loading @@ -95,6 +101,8 @@ export class BasicInfoFormComponent implements OnInit { hasRestrictedCarriers: boolean; carriersIds: string[]; useOnlyRestrictedCarriersForDelivery: boolean; preferRestrictedCarriersForDelivery: boolean; }; if (!basicInfo.logo) { Loading @@ -112,20 +120,54 @@ export class BasicInfoFormComponent implements OnInit { hasRestrictedCarriers: basicInfo.hasRestrictedCarriers, carriersIds: basicInfo.carriersIds } : {}) : {}), ...(basicInfo.hasRestrictedCarriers && basicInfo.carriersIds && basicInfo.carriersIds.length ? { useOnlyRestrictedCarriersForDelivery: basicInfo.useOnlyRestrictedCarriersForDelivery, preferRestrictedCarriersForDelivery: basicInfo.preferRestrictedCarriersForDelivery } : { useOnlyRestrictedCarriersForDelivery: false, preferRestrictedCarriersForDelivery: false }) }; } setValue<T extends WarehouseBasicInfo>(basicInfo: T) { FormHelpers.deepMark(this.form, 'dirty'); basicInfo = Object.assign( { useOnlyRestrictedCarriersForDelivery: false, preferRestrictedCarriersForDelivery: false }, basicInfo ); this.form.setValue( pick(basicInfo, [ ...Object.keys(this.getValue()), 'hasRestrictedCarriers', 'carriersIds' 'carriersIds', 'useOnlyRestrictedCarriersForDelivery', 'preferRestrictedCarriersForDelivery' ]) ); const onlyStore = basicInfo.useOnlyRestrictedCarriersForDelivery; const preferStore = basicInfo.preferRestrictedCarriersForDelivery; if (onlyStore) { this.delivery = 'onlyStore'; } else if (preferStore) { this.delivery = 'preferStore'; } else { this.delivery = 'all'; } } getPassword(): string { Loading Loading @@ -169,6 +211,33 @@ export class BasicInfoFormComponent implements OnInit { return this.form.get('carriersIds'); } get useOnlyRestrictedCarriersForDelivery() { return this.form.get('useOnlyRestrictedCarriersForDelivery'); } get preferRestrictedCarriersForDelivery() { return this.form.get('preferRestrictedCarriersForDelivery'); } get delivery() { return this._delivery; } set delivery(value) { this._delivery = value; this.useOnlyRestrictedCarriersForDelivery.setValue(false); this.preferRestrictedCarriersForDelivery.setValue(false); switch (value) { case 'onlyStore': this.useOnlyRestrictedCarriersForDelivery.setValue(true); break; case 'preferStore': this.preferRestrictedCarriersForDelivery.setValue(true); break; } } get showLogoMeta() { return this.logo && this.logo.value !== ''; } Loading
admin/website-angular/src/app/@shared/warehouse/forms/warehouse-manage-tabs/details/warehouse-manage-tabs-details.component.html +26 −0 Original line number Diff line number Diff line Loading @@ -154,5 +154,31 @@ </div> </div> </div> <!-- TODO add translate --> <div *ngIf="hasRestrictedCarriers.value && carriersIds?.value.length" class="form-group row" > <label class="col-sm-2 control-label">Delivery</label> <div class="col-sm-9"> <nb-radio-group [(value)]="delivery" class="row m-0" name="size" > <nb-radio name="size" [value]="'all'"> Use All Carriers </nb-radio> <nb-radio name="size" [value]="'onlyStore'"> Use Only Store Carriers </nb-radio> <nb-radio name="size" [value]="'preferStore'"> Prefer Store Carriers </nb-radio> </nb-radio-group> </div> </div> </fieldset> </div>
admin/website-angular/src/app/@shared/warehouse/forms/warehouse-manage-tabs/details/warehouse-manage-tabs-details.component.ts +71 −2 Original line number Diff line number Diff line Loading @@ -32,6 +32,8 @@ export type WarehouseManageTabsDetails = Pick< | 'carriersIds' | 'isManufacturing' | 'isCarrierRequired' | 'useOnlyRestrictedCarriersForDelivery' | 'preferRestrictedCarriersForDelivery' >; @Component({ Loading Loading @@ -67,6 +69,8 @@ export class WarehouseManageTabsDetailsComponent ) ); private _delivery: 'all' | 'onlyStore' | 'preferStore' = 'all'; constructor( private readonly _carrierRouter: CarrierRouter, private readonly _translateService: TranslateService Loading Loading @@ -99,6 +103,33 @@ export class WarehouseManageTabsDetailsComponent return this.form.get('isCarrierRequired'); } get useOnlyRestrictedCarriersForDelivery() { return this.form.get('useOnlyRestrictedCarriersForDelivery'); } get preferRestrictedCarriersForDelivery() { return this.form.get('preferRestrictedCarriersForDelivery'); } get delivery() { return this._delivery; } set delivery(value) { this._delivery = value; this.useOnlyRestrictedCarriersForDelivery.setValue(false); this.preferRestrictedCarriersForDelivery.setValue(false); switch (value) { case 'onlyStore': this.useOnlyRestrictedCarriersForDelivery.setValue(true); break; case 'preferStore': this.preferRestrictedCarriersForDelivery.setValue(true); break; } } static buildForm(formBuilder: FormBuilder): FormGroup { // would be used in the parent component and injected into this.form return formBuilder.group({ Loading Loading @@ -128,6 +159,8 @@ export class WarehouseManageTabsDetailsComponent isManufacturing: [true, [Validators.required]], isCarrierRequired: [true, [Validators.required]], hasRestrictedCarriers: [false, [Validators.required]], useOnlyRestrictedCarriersForDelivery: [false], preferRestrictedCarriersForDelivery: [false], carriersIds: [[]] }); } Loading @@ -149,6 +182,8 @@ export class WarehouseManageTabsDetailsComponent isCarrierRequired: boolean; hasRestrictedCarriers: boolean; carriersIds: string[]; useOnlyRestrictedCarriersForDelivery: boolean; preferRestrictedCarriersForDelivery: boolean; }; return { Loading @@ -162,20 +197,54 @@ export class WarehouseManageTabsDetailsComponent hasRestrictedCarriers: basicInfo.hasRestrictedCarriers, carriersIds: basicInfo.carriersIds } : {}) : {}), ...(basicInfo.hasRestrictedCarriers && basicInfo.carriersIds && basicInfo.carriersIds.length ? { useOnlyRestrictedCarriersForDelivery: basicInfo.useOnlyRestrictedCarriersForDelivery, preferRestrictedCarriersForDelivery: basicInfo.preferRestrictedCarriersForDelivery } : { useOnlyRestrictedCarriersForDelivery: false, preferRestrictedCarriersForDelivery: false }) }; } setValue<T extends WarehouseManageTabsDetails>(basicInfo: T) { FormHelpers.deepMark(this.form, 'dirty'); basicInfo = Object.assign( { useOnlyRestrictedCarriersForDelivery: false, preferRestrictedCarriersForDelivery: false }, basicInfo ); this.form.setValue( _.pick(basicInfo, [ ...Object.keys(this.getValue()), 'hasRestrictedCarriers', 'carriersIds' 'carriersIds', 'useOnlyRestrictedCarriersForDelivery', 'preferRestrictedCarriersForDelivery' ]) ); const onlyStore = basicInfo.useOnlyRestrictedCarriersForDelivery; const preferStore = basicInfo.preferRestrictedCarriersForDelivery; if (onlyStore) { this.delivery = 'onlyStore'; } else if (preferStore) { this.delivery = 'preferStore'; } else { this.delivery = 'all'; } } deleteImg() { Loading
backend/api/src/graphql/warehouses/warehouses.types.graphql +6 −0 Original line number Diff line number Diff line Loading @@ -44,6 +44,8 @@ type Warehouse { usedCarriersIds: [String!] carriers: [Carrier!] # Resolved, if hasRestrictedCarriers is false -> returns null orderBarcodeType: Int useOnlyRestrictedCarriersForDelivery: Boolean preferRestrictedCarriersForDelivery: Boolean } input WarehouseCreateInput { Loading Loading @@ -76,6 +78,8 @@ input WarehouseCreateInput { hasRestrictedCarriers: Boolean carriersIds: [String!] usedCarriersIds: [String!] useOnlyRestrictedCarriersForDelivery: Boolean preferRestrictedCarriersForDelivery: Boolean } input WarehousesFindInput { Loading Loading @@ -109,6 +113,8 @@ input WarehousesFindInput { hasRestrictedCarriers: Boolean carriersIds: [String!] usedCarriersIds: [String!] useOnlyRestrictedCarriersForDelivery: Boolean preferRestrictedCarriersForDelivery: Boolean } type Query { Loading