tango-app-api-store-builder 1.0.0-beta-82 → 1.0.0-beta-84

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tango-app-api-store-builder",
3
- "version": "1.0.0-beta-82",
3
+ "version": "1.0.0-beta-84",
4
4
  "description": "storeBuilder",
5
5
  "main": "index.js",
6
6
  "type": "module",
@@ -3309,7 +3309,6 @@ export async function updatePlanoFixtureLayout( planoId, floorId ) {
3309
3309
  const planoDoc = insertedPlano.toObject();
3310
3310
 
3311
3311
  const fixtureData = await storeFixtureService.findAndSort( { planoId: planoId, floorId: floorId }, {}, { fixtureNumber: 1 } );
3312
- console.log( fixtureData, 'data' );
3313
3312
 
3314
3313
  const leftFixtures = fixtureData.filter( ( fixture ) => fixture.associatedElementType == 'wall' && fixture.associatedElementNumber == 1 );
3315
3314
  const rightFixtures = fixtureData.filter( ( fixture ) => fixture.associatedElementType == 'wall' && fixture.associatedElementNumber == 3 );
@@ -3665,13 +3664,13 @@ export async function updatelayout( req, res ) {
3665
3664
  elementNumber = key.split( ' ' )[1];
3666
3665
  matchingFixtures = fixtureDetails.filter(
3667
3666
  ( elementFixture ) =>
3668
- elementFixture.associatedElementType === elementType &&
3669
- elementFixture.associatedElementNumber === parseInt( elementNumber ),
3667
+ elementFixture.associatedElementType == elementType &&
3668
+ elementFixture.associatedElementNumber == elementNumber,
3670
3669
  );
3671
3670
  } else {
3672
3671
  matchingFixtures = fixtureDetails.filter(
3673
3672
  ( elementFixture ) =>
3674
- elementFixture.fixtureType === 'floor',
3673
+ elementFixture.fixtureType == 'floor',
3675
3674
  );
3676
3675
  }
3677
3676
  if ( matchingFixtures.length ) {
@@ -3689,6 +3688,10 @@ export async function updatelayout( req, res ) {
3689
3688
  ...( key == 'floor' ) ? { header: '', footer: '' } : {},
3690
3689
  };
3691
3690
  fixtureDetails.splice( fixtureIndex, 1 );
3691
+ let matchFixtureIndex = matchingFixtures.findIndex( ( fix ) => fix._id.toString() == fixture.fixtureId.toString() );
3692
+ if ( matchFixtureIndex != -1 ) {
3693
+ matchingFixtures.splice( matchFixtureIndex, 1 );
3694
+ }
3692
3695
  if ( maxFixtureNumber < parseInt( fixture.position ) ) {
3693
3696
  details.associatedElementFixtureNumber = maxFixtureNumber + 1;
3694
3697
  matchingFixtures.splice( maxFixtureNumber, 0, details );
@@ -3706,14 +3709,27 @@ export async function updatelayout( req, res ) {
3706
3709
  }
3707
3710
  if ( layoutAnswer?.correctedFixture?.length ) {
3708
3711
  for ( let [ fixtureIndex, fixture ] of layoutAnswer.correctedFixture.entries() ) {
3709
- const matchingFixtures = fixtureDetails.filter(
3710
- ( elementFixture ) =>
3711
- elementFixture.associatedElementType === fixture.alignment.split( ' ' )[0] &&
3712
- elementFixture.associatedElementNumber === parseInt( fixture.alignment.split( ' ' )[1] ),
3713
- );
3714
- const maxFixtureNumber = Math.max(
3715
- ...matchingFixtures.map( ( f ) => f.associatedElementFixtureNumber ),
3716
- );
3712
+ let matchingFixtures;
3713
+ let maxFixtureNumber = 0;
3714
+ if ( fixture.alignment != 'centre' ) {
3715
+ let elementType = fixture.alignment.split( ' ' )[0];
3716
+ let elementNumber = fixture.alignment.split( ' ' )[1];
3717
+ matchingFixtures = fixtureDetails.filter(
3718
+ ( elementFixture ) =>
3719
+ elementFixture.associatedElementType == elementType &&
3720
+ elementFixture.associatedElementNumber == elementNumber,
3721
+ );
3722
+ } else {
3723
+ matchingFixtures = fixtureDetails.filter(
3724
+ ( elementFixture ) =>
3725
+ elementFixture.fixtureType == 'floor',
3726
+ );
3727
+ }
3728
+ if ( matchingFixtures.length ) {
3729
+ maxFixtureNumber = Math.max(
3730
+ ...matchingFixtures.map( ( f ) => f.associatedElementFixtureNumber ),
3731
+ );
3732
+ }
3717
3733
  const fixtureConfig = await fixtureConfigService.findOne( { fixtureCategory: fixture.fixtureType } );
3718
3734
  if ( fixtureConfig ) {
3719
3735
  const fixtureConfigDoc = fixtureConfig.toObject();
@@ -3757,7 +3773,10 @@ export async function updatelayout( req, res ) {
3757
3773
  let fixtureDoc = await storeFixtureService.create( fixtureData );
3758
3774
  if ( fixtureDoc ) {
3759
3775
  let productCount = 0;
3760
- fixtureDetails.splice( parseInt( fixture.position ) - 1, 0, JSON.parse( JSON.stringify( fixtureDoc ) ) );
3776
+ matchingFixtures.splice( parseInt( fixture.position ) - 1, 0, JSON.parse( JSON.stringify( fixtureDoc ) ) );
3777
+ let fixIdList = matchingFixtures.map( ( mixFixture ) => mixFixture._id.toString() );
3778
+ fixtureDetails = fixtureDetails.filter( ( fixt ) => !fixIdList.includes( fixt._id.toString() ) );
3779
+ fixtureDetails.push( ...matchingFixtures );
3761
3780
  let shelfDetails = layoutAnswer.shlef[fixtureIndex];
3762
3781
  for ( let i=0; i<shelfDetails.count; i++ ) {
3763
3782
  const insertData = {
@@ -3810,6 +3829,9 @@ export async function updatelayout( req, res ) {
3810
3829
  };
3811
3830
 
3812
3831
  await storeFixtureService.updateOne( { _id: element._id }, data );
3832
+ if ( key == 'floor' ) {
3833
+ await storeFixtureService.removeKeys( { _id: element._id }, { $unset: { header: '', footer: '', associatedElementType: '', associatedElementNumber: '' } } );
3834
+ }
3813
3835
  }
3814
3836
  }
3815
3837
  await updatePlanoFixtureLayout( layout.planoId, layout.floorId );
@@ -41,4 +41,4 @@ export async function upsertOne( query, record ) {
41
41
  record,
42
42
  { upsert: true, new: true },
43
43
  );
44
- }
44
+ }
@@ -51,3 +51,7 @@ export async function upsertOne( query, record ) {
51
51
  { upsert: true, new: true },
52
52
  );
53
53
  }
54
+
55
+ export async function removeKeys( query, data ) {
56
+ return model.storeFixtureModel.updateOne( query, data );
57
+ }