@things-factory/warehouse-base 4.3.21 → 4.3.22

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.
@@ -1 +1 @@
1
- {"version":3,"file":"inventory-history-types.js","sourceRoot":"","sources":["../../../server/service/inventory-history/inventory-history-types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"inventory-history-types.js","sourceRoot":"","sources":["../../../server/service/inventory-history/inventory-history-types.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,+CAAuE;AAEvE,uDAAmD;AACnD,+DAAsD;AACtD,iDAAiD;AAEjD,mDAA+C;AAC/C,2DAAsD;AAGtD,IAAa,oBAAoB,GAAjC,MAAa,oBAAoB;CAMhC,CAAA;AAJC;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC,oCAAgB,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;mDAC5B;AAG1B;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;mDACzB;AALH,oBAAoB;IADhC,IAAA,yBAAU,GAAE;GACA,oBAAoB,CAMhC;AANY,oDAAoB;AASjC,IAAa,gCAAgC,GAA7C,MAAa,gCAAgC;CAS5C,CAAA;AAPC;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC,4BAA4B,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;+DAC5B;AAGtC;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;+DACzB;AAGd;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;iFACP;AARrB,gCAAgC;IAD5C,IAAA,yBAAU,GAAE;GACA,gCAAgC,CAS5C;AATY,4EAAgC;AAY7C,IAAa,4BAA4B,GAAzC,MAAa,4BAA4B;CAqBxC,CAAA;AAnBC;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,mBAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;kDACjC,mBAAQ,oBAAR,mBAAQ;8DAAA;AAGnB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,mBAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;8BACjC,mBAAQ;8DAAA;AAGnB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;8DACT;AAGjB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;8DACT;AAGjB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;qEACF;AAGxB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;gEACpB;AAGnB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;8DACtB;AApBN,4BAA4B;IADxC,IAAA,yBAAU,GAAE;GACA,4BAA4B,CAqBxC;AArBY,oEAA4B;AAwBzC,IAAa,qBAAqB,GAAlC,MAAa,qBAAqB;CA6FjC,CAAA;AA3FC;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;iDACf;AAGX;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;kDAC3B;AAGZ;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;mDACb;AAGb;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,iBAAS,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;kDACnC,iBAAS,oBAAT,iBAAS;uDAAA;AAGnB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;yDACP;AAGnB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;sDACV;AAGhB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;uDACT;AAGjB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;uDACT;AAGjB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;sDACV;AAGhB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;yDACP;AAGnB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;wDACR;AAGlB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;0DACN;AAGpB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;+DACD;AAGzB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;iEACC;AAG3B;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;yDACP;AAGnB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;2DACL;AAGrB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;0DACN;AAGpB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;4DACJ;AAGtB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;uDACT;AAGjB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;mDACb;AAGb;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;0DACN;AAGpB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,oBAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;0DACrB;AAGpB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;kDAC3B;AAGZ;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;kDACd;AAGZ;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,oBAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;uDACxB;AAGjB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;qDACX;AAGf;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;8DACF;AAGxB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;0DACN;AAGpB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;qDACX;AAGf;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;uDACT;AAGjB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;qDACX;AA5FJ,qBAAqB;IADjC,IAAA,wBAAS,GAAE;GACC,qBAAqB,CA6FjC;AA7FY,sDAAqB;AAgGlC,IAAa,uBAAuB,GAApC,MAAa,uBAAuB;CAoCnC,CAAA;AAlCC;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;wDACV;AAGhB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;4DACN;AAGpB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;4DACnB;AAGpB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,sBAAO,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;kDACjC,sBAAO,oBAAP,sBAAO;wDAAA;AAGjB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,oBAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;2DACtB;AAGnB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,oBAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;2DACtB;AAGnB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,oBAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;8DACnB;AAGtB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,oBAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;2DACtB;AAGnB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,oBAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;2DACtB;AAGnB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,oBAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;4DACrB;AAGpB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,oBAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;2DACtB;AAGnB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;4DACN;AAnCT,uBAAuB;IADnC,IAAA,yBAAU,GAAE;GACA,uBAAuB,CAoCnC;AApCY,0DAAuB;AAuCpC,IAAa,2BAA2B,GAAxC,MAAa,2BAA2B;CAYvC,CAAA;AAVC;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC,uBAAuB,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;0DAC5B;AAGjC;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;0DACzB;AAGd;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;oEACf;AAGxB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;oEACf;AAXb,2BAA2B;IADvC,IAAA,yBAAU,GAAE;GACA,2BAA2B,CAYvC;AAZY,kEAA2B;AAexC,IAAa,mBAAmB,GAAhC,MAAa,mBAAmB;CAkE/B,CAAA;AAhEC;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;gDAC3B;AAGZ;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;iDACb;AAGb;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;qDACT;AAGjB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;qDACT;AAGjB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;oDACV;AAGhB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;uDACP;AAGnB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;sDACR;AAGlB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;6DACD;AAGzB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;uDACP;AAGnB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;wDACN;AAGpB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;qDACT;AAGjB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;iDACb;AAGb;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;wDACN;AAGpB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,oBAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;wDACrB;AAGpB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,oBAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;qDACxB;AAGjB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;gDAC3B;AAGZ;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;gDACd;AAGZ;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;mDACX;AAGf;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;4DACF;AAGxB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;wDACN;AAGpB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;8BACT,IAAI;2DAAA;AAGrB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,oBAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;qDACxB;AAjEN,mBAAmB;IAD/B,IAAA,wBAAS,GAAE;GACC,mBAAmB,CAkE/B;AAlEY,kDAAmB;AAqEhC,IAAa,uBAAuB,GAApC,MAAa,uBAAuB;CAMnC,CAAA;AAJC;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC,mBAAmB,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;sDAC5B;AAG7B;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;sDACzB;AALH,uBAAuB;IADnC,IAAA,yBAAU,GAAE;GACA,uBAAuB,CAMnC;AANY,0DAAuB;AAQpC,IAAa,mBAAmB,GAAhC,MAAa,mBAAmB;CA2E/B,CAAA;AAzEC;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;gDACd;AAGZ;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;wDACN;AAGpB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;+DACC;AAG3B;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;kDACZ;AAGd;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;gDAC3B;AAGZ;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;qDACT;AAGjB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;qDACT;AAGjB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;oDACV;AAGhB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;uDACP;AAGnB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;uDACpB;AAGnB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;gDAC3B;AAGZ;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,oBAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;4DACjB;AAGxB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,oBAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;qDACxB;AAGjB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;gDACd;AAGZ;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;iDACb;AAGb;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;oDACV;AAGhB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;kDACZ;AAGd;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;mDACX;AAGf;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;4DACF;AAGxB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;qDACT;AAGjB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;sDACR;AAGlB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;qDACT;AAGjB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;8BACd,IAAI;sDAAA;AAGhB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;8BACd,IAAI;sDAAA;AAGhB;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;oDACV;AA1EL,mBAAmB;IAD/B,IAAA,yBAAU,GAAE;GACA,mBAAmB,CA2E/B;AA3EY,kDAAmB;AA6EhC,IAAa,mCAAmC,GAAhD,MAAa,mCAAmC;CAuC/C,CAAA;AArCC;IADC,IAAA,oBAAK,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;8BACnB,IAAI;iEAAA;AAGX;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;uEACpB;AAGnB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,oBAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;0EACnB;AAGtB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;uEACpB;AAGnB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,oBAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;0EACnB;AAGtB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;wEACnB;AAGpB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,oBAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;2EAClB;AAGvB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;uEACpB;AAGnB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,oBAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;0EACnB;AAGtB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;wEACnB;AAGpB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,oBAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;2EAClB;AAGvB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;uEACpB;AAGnB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,oBAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;0EACnB;AAtCX,mCAAmC;IAD/C,IAAA,yBAAU,GAAE;GACA,mCAAmC,CAuC/C;AAvCY,kFAAmC;AA0ChD,IAAa,uCAAuC,GAApD,MAAa,uCAAuC;CA0CnD,CAAA;AAxCC;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC,mCAAmC,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;sEAC5B;AAG7C;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;sEACzB;AAGd;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;gFACf;AAGxB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,oBAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;mFACd;AAG3B;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;gFACf;AAGxB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,oBAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;mFACd;AAG3B;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;iFACd;AAGzB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,oBAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;oFACb;AAG5B;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;gFACf;AAGxB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,oBAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;mFACd;AAG3B;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;iFACd;AAGzB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,oBAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;oFACb;AAG5B;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,kBAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;gFACf;AAGxB;IADC,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,oBAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;mFACd;AAzChB,uCAAuC;IADnD,IAAA,yBAAU,GAAE;GACA,uCAAuC,CA0CnD;AA1CY,0FAAuC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@things-factory/warehouse-base",
3
- "version": "4.3.21",
3
+ "version": "4.3.22",
4
4
  "main": "dist-server/index.js",
5
5
  "browser": "client/index.js",
6
6
  "things-factory": true,
@@ -26,10 +26,10 @@
26
26
  "dependencies": {
27
27
  "@things-factory/biz-base": "^4.3.20",
28
28
  "@things-factory/id-rule-base": "^4.3.20",
29
- "@things-factory/integration-sellercraft": "^4.3.20",
30
- "@things-factory/marketplace-base": "^4.3.21",
29
+ "@things-factory/integration-sellercraft": "^4.3.22",
30
+ "@things-factory/marketplace-base": "^4.3.22",
31
31
  "@things-factory/product-base": "^4.3.20",
32
32
  "@things-factory/setting-base": "^4.3.20"
33
33
  },
34
- "gitHead": "2021cf9407cfd29d9e1b32063f834584c7b97714"
34
+ "gitHead": "9dd1ce192948dbc0e4f3611e11f4804b71d06643"
35
35
  }
@@ -16,6 +16,7 @@ import { InventoryBundleGroupDetail, InventoryList } from './inventory-types'
16
16
  @Resolver(Inventory)
17
17
  export class InventoryQuery {
18
18
  @Directive('@privilege(category: "inventory", privilege: "query")')
19
+ @Directive('@transaction')
19
20
  @Query(returns => InventoryList)
20
21
  async inventories(
21
22
  @Ctx() context: any,
@@ -24,7 +25,7 @@ export class InventoryQuery {
24
25
  @Arg('sortings', type => [Sorting], { nullable: true }) sortings?: Sorting[],
25
26
  @Arg('locationSortingRules', type => [Sorting], { nullable: true }) locationSortingRules?: Sorting[]
26
27
  ): Promise<InventoryList> {
27
- const { domain, user }: { domain: Domain; user: User } = context.state
28
+ const { domain, user, tx }: { domain: Domain; user: User; tx: EntityManager } = context.state
28
29
 
29
30
  try {
30
31
  const productFilters = filters.find(x => x.name == 'product_info')
@@ -132,33 +133,31 @@ export class InventoryQuery {
132
133
  let [items, total] = await qb.getManyAndCount()
133
134
  items = await Promise.all(
134
135
  items.map(async (item: Inventory) => {
135
- const selectedQty = item.lockedQty ? item.lockedQty : 0
136
- const selectedUomValue = item.lockedUomValue ? item.lockedUomValue : 0
137
-
138
- item.product['productDetails'] = await getRepository(ProductDetail).find({
139
- where: {
140
- product: item.product.id,
141
- packingType: item.packingType,
142
- packingSize: item.packingSize
143
- }
144
- })
145
-
146
- let inventoryItems: InventoryItem[] = await getRepository(InventoryItem).find({
147
- where: { domain, inventory: item }
148
- })
149
-
150
- let serialNumbers: string =
151
- inventoryItems
152
- .map(inventoryItem => {
153
- return inventoryItem.serialNumber
154
- })
155
- .join(',') || ''
136
+ let [productDetails, inventoryItems] = await Promise.all([
137
+ getRepository(ProductDetail).find({
138
+ where: {
139
+ product: item.product.id,
140
+ packingType: item.packingType,
141
+ packingSize: item.packingSize
142
+ }
143
+ }),
144
+ tx.query(
145
+ `
146
+ SELECT string_agg(ii.serial_number, ', ') AS "serialNumbers"
147
+ FROM inventory_items ii
148
+ WHERE ii.inventory_id = $1
149
+ GROUP BY ii.inventory_id
150
+ `,
151
+ [item.id]
152
+ )
153
+ ])
156
154
 
155
+ item.product['productDetails'] = productDetails
157
156
  return {
158
157
  ...item,
159
- remainQty: item.qty - selectedQty,
160
- remainUomValue: item.uomValue - selectedUomValue,
161
- serialNumbers: serialNumbers
158
+ remainQty: item.qty - item.lockedQty ? item.lockedQty : 0,
159
+ remainUomValue: item.uomValue - item.lockedUomValue ? item.lockedUomValue : 0,
160
+ serialNumbers: inventoryItems[0]?.serialNumbers
162
161
  }
163
162
  })
164
163
  )
@@ -709,6 +708,18 @@ export class InventoryQuery {
709
708
  .leftJoinAndSelect('Inventory.location', 'Location')
710
709
  .leftJoinAndSelect('Inventory.creator', 'Creator')
711
710
  .leftJoinAndSelect('Inventory.updater', 'Updater')
711
+ .leftJoinAndSelect(
712
+ subQuery => {
713
+ return subQuery
714
+ .select('ii.inventory_id', 'inventory_id')
715
+ .addSelect(`string_agg(ii.serial_number, ', ')`, 'serial_numbers')
716
+ .from('inventory_items', 'ii')
717
+ .where(`ii.domain_id = :domainId`, { domainId: domain.id })
718
+ .groupBy('ii.inventory_id')
719
+ },
720
+ 'ii2',
721
+ 'ii2.inventory_id = Inventory.id'
722
+ )
712
723
 
713
724
  if (remainOnly) {
714
725
  qb.andWhere('Inventory.qty > 0')
@@ -766,28 +777,17 @@ export class InventoryQuery {
766
777
  .limit(limit)
767
778
  .getRawMany()
768
779
 
769
- await Promise.all(
770
- items.map(async item => {
771
- let inventoryItems: InventoryItem[] = await getRepository(InventoryItem).find({
772
- where: { domain, inventory: item }
773
- })
774
-
775
- let serialNumbers: string =
776
- inventoryItems
777
- .map(inventoryItem => {
778
- return inventoryItem.serialNumber
779
- })
780
- .join(',') || ''
780
+ let total = await qb.getCount()
781
781
 
782
+ return {
783
+ items: items.map(item => {
782
784
  return {
783
- ...item,
784
- serialNumbers: serialNumbers
785
+ ...new Inventory(item),
786
+ serialNumbers: item.serial_numbers
785
787
  }
786
- })
787
- )
788
-
789
- let total = await qb.getCount()
790
- return { items: items.map(item => new Inventory(item)), total }
788
+ }),
789
+ total
790
+ }
791
791
  } catch (error) {
792
792
  throw error
793
793
  }
@@ -225,6 +225,12 @@ export class Inventory {
225
225
  @Field(type => Int, { nullable: true })
226
226
  remainQty: number
227
227
 
228
+ @Field(type=>Int,{nullable: true})
229
+ nonLoadedQty: number
230
+
231
+ @Field(type=>Float,{nullable:true})
232
+ nonLoadedUomValue: number
233
+
228
234
  @Field({ nullable: true })
229
235
  initialInboundAt: string
230
236
 
@@ -360,13 +360,16 @@ export class InventoryChangeMutation {
360
360
  .getRepository(Privilege)
361
361
  .createQueryBuilder('p')
362
362
  .select('u.*')
363
+ .addSelect('r.*')
363
364
  .innerJoin('p.roles', 'r')
364
365
  .innerJoin('r.users', 'u')
365
366
  .where('p.name = :name', { name: 'mutation' })
366
367
  .andWhere('p.category = :category', { category: 'inventory' })
367
368
  .andWhere('r.domain_id = :domainId', { domainId: domain.id })
368
369
  .groupBy('u.id')
370
+ .addGroupBy('r.id')
369
371
  .getRawMany()
372
+
370
373
  if (_updateRecords.some(res => res.transactionType == 'MISSING')) {
371
374
  if (notificationApprover?.length && context.header?.referer) {
372
375
  const receivers: any[] = notificationApprover.map(user => user.id)
@@ -1,9 +1,9 @@
1
1
  import { Arg, Args, Ctx, Directive, FieldResolver, Query, Resolver, Root } from 'type-graphql'
2
- import { Between, Brackets, EntityManager, getRepository, In, Raw, SelectQueryBuilder } from 'typeorm'
2
+ import { Between, Brackets, EntityManager, getRepository, In, Raw, SelectQueryBuilder, IsNull } from 'typeorm'
3
3
 
4
4
  import { User } from '@things-factory/auth-base'
5
- import { Bizplace, getMyBizplace, getPermittedBizplaceIds } from '@things-factory/biz-base'
6
- import { Product } from '@things-factory/product-base'
5
+ import { Bizplace, getMyBizplace, getPermittedBizplaceIds, getPermittedBizplace } from '@things-factory/biz-base'
6
+ import { Product, ProductDetail } from '@things-factory/product-base'
7
7
  import { buildQuery, convertListParams, Domain, Filter, ListParam, Pagination, Sorting } from '@things-factory/shell'
8
8
 
9
9
  import { RawInventoryHistoryList } from '../'
@@ -15,7 +15,8 @@ import {
15
15
  InventoryHistoryList,
16
16
  InventoryHistoryPalletReportList,
17
17
  InventoryHistoryPatch,
18
- InventoryHistorySummaryList
18
+ InventoryHistorySummaryList,
19
+ InventoryHistoryVolumeSummaryReportList
19
20
  } from './inventory-history-types'
20
21
 
21
22
  @Resolver(InventoryHistory)
@@ -933,6 +934,7 @@ export class InventoryHistoryQuery {
933
934
  packingType: itm.packing_type,
934
935
  packingSize: itm.packing_size,
935
936
  openingQty: itm.opening_qty,
937
+ missingQty: itm.missing_qty,
936
938
  adjustmentQty: itm.adjustment_qty,
937
939
  closingQty: itm.closing_qty,
938
940
  totalInQty: itm.total_in_qty,
@@ -1003,15 +1005,15 @@ export class InventoryHistoryQuery {
1003
1005
  } else {
1004
1006
  bizplaceFilter = !filters.find((filter: any) => filter.name === 'bizplace')
1005
1007
  ? {
1006
- name: 'bizplace',
1007
- operator: 'in',
1008
- value: await getPermittedBizplaceIds(domain, user),
1009
- relation: true
1010
- }
1008
+ name: 'bizplace',
1009
+ operator: 'in',
1010
+ value: await getPermittedBizplaceIds(domain, user),
1011
+ relation: true
1012
+ }
1011
1013
  : {
1012
- ...filters.find(data => data.name === 'bizplace'),
1013
- value: [filters.find(data => data.name === 'bizplace').value]
1014
- }
1014
+ ...filters.find(data => data.name === 'bizplace'),
1015
+ value: [filters.find(data => data.name === 'bizplace').value]
1016
+ }
1015
1017
  }
1016
1018
 
1017
1019
  let queryFilter = ``
@@ -1078,9 +1080,8 @@ export class InventoryHistoryQuery {
1078
1080
  sortings.forEach((sorting, idx) => {
1079
1081
  let itmIndex = arrObjectMap.findIndex(x => x.name === sorting.name)
1080
1082
 
1081
- queryOrder = `${idx === 0 ? 'order by' : queryOrder + ','} ${
1082
- itmIndex >= 0 ? arrObjectMap[itmIndex].value : sorting.name
1083
- } ${sorting.desc ? 'DESC' : 'ASC'}`
1083
+ queryOrder = `${idx === 0 ? 'order by' : queryOrder + ','} ${itmIndex >= 0 ? arrObjectMap[itmIndex].value : sorting.name
1084
+ } ${sorting.desc ? 'DESC' : 'ASC'}`
1084
1085
  })
1085
1086
  }
1086
1087
 
@@ -1115,12 +1116,14 @@ export class InventoryHistoryQuery {
1115
1116
  `,
1116
1117
  [domain.id, createdAt.value, timezoneOffset]
1117
1118
  )
1118
-
1119
+
1120
+ //comment start
1121
+ //detailed review needed 19 May 2022 by @ChrisLim-git
1119
1122
  await tx.query(
1120
1123
  `
1121
1124
  create temp table tmp_data on commit drop as (
1122
- select dt.*, rih.carton_id, rih.batch_id, rih.batch_id_ref, rih.product_id, rih.packing_type, rih.bizplace_id, rih.location_id, rih.unit_cost, iv.uom,
1123
- iv.expiration_date, iv.reusable_pallet_id, iv.remark
1125
+ select dt.*, rih.carton_id, rih.batch_id, rih.batch_id_ref, rih.product_id, rih.packing_type, rih.bizplace_id, rih.location_id, rih.unit_cost,iv.id as inventory_id, iv.uom,
1126
+ iv.expiration_date, iv.manufacture_date, iv.reusable_pallet_id, iv.remark,iv.status
1124
1127
  from
1125
1128
  (
1126
1129
  select ih.domain_id, ih.pallet_id, sum(ih.qty) as qty, sum(ih.uom_value) as uom_value, max(ih.seq) as last_seq, max(ih.created_at) as created_at,
@@ -1128,7 +1131,7 @@ export class InventoryHistoryQuery {
1128
1131
  from tmp_src ih
1129
1132
  group by ih.domain_id, ih.pallet_id
1130
1133
  ) dt
1131
- inner join tmp_src rih on dt.domain_id = rih.domain_id and dt.pallet_id = rih.pallet_id and dt.last_seq = rih.seq and rih.status <> 'TERMINATED'
1134
+ inner join tmp_src rih on dt.domain_id = rih.domain_id and dt.pallet_id = rih.pallet_id and dt.last_seq = rih.seq
1132
1135
  inner join inventories iv on iv.domain_id = dt.domain_id and iv.pallet_id = dt.pallet_id and iv.status <> 'MISSING'
1133
1136
  where exists (
1134
1137
  SELECT * FROM tmp_bizfilter bizFilter
@@ -1140,7 +1143,39 @@ export class InventoryHistoryQuery {
1140
1143
  `
1141
1144
  )
1142
1145
 
1143
- const total: any = await tx.query(`select count(*) from tmp_data`)
1146
+ await tx.query(
1147
+ `
1148
+ create temp table tmp_result on commit drop as (
1149
+ select
1150
+ rih.domain_id, rih.pallet_id as "palletId", rih.carton_id as "cartonId", rih.qty as "remainQty", rih.uom_value as "uomValue", rih.uom, rih.last_seq, rih.created_at,
1151
+ rih.initial_inbound_at as "initialInboundAt", rih.unit_cost as "unitCost",
1152
+ case when rih.reusable_pallet_id is not null then concat(rih.batch_id, ' (', plt.name, ')') else rih.batch_id end as "batchId",
1153
+ rih.batch_id_ref as "batchIdRef", rih.product_id as "productId", rih.packing_type as "packingType",
1154
+ prd.id as product_id, prd.name as product_name, prd.sku as product_sku, prd.brand as product_brand, prd.description as product_description, prd.volume as product_volume,
1155
+ bz.id as bizplace_id, bz.name as bizplace_name,
1156
+ loc.id as location_id, loc.name as location_name, loc."zone" as location_zone, loc."row" as location_row, loc."column" as location_column, loc.shelf as location_shelf,
1157
+ wh.name as warehouse_name, plt.name as reusable_pallet_name,
1158
+ rih.remark,
1159
+ rih.manufacture_date as "manufactureDate",
1160
+ rih.expiration_date as "expirationDate"
1161
+ ,sum(case when oi.status = 'LOADING' or (oi.status = 'SORTING' and oi.type = 'RELEASE_OF_GOODS') then oi.release_qty else 0 end) as "nonLoadedQty"
1162
+ ,sum(case when oi.status = 'LOADING' or (oi.status = 'SORTING' and oi.type = 'RELEASE_OF_GOODS') then (oi.release_uom_value / oi.release_qty* oi.release_qty) else 0 end) as "nonLoadedUomValue"
1163
+ from tmp_data rih
1164
+ left join pallets plt on plt.id = rih.reusable_pallet_id
1165
+ inner join products prd on prd.id = rih.product_id
1166
+ inner join bizplaces bz on bz.id = rih.bizplace_id
1167
+ inner join locations loc on loc.id = rih.location_id
1168
+ inner join warehouses wh on wh.id = loc.warehouse_id
1169
+ inner join order_inventories oi on oi.inventory_id = rih.inventory_id
1170
+ group by rih.inventory_id,rih.domain_id,rih.pallet_id,rih.carton_id,rih.qty,rih.uom_value,rih.uom,rih.last_seq,rih.created_at, rih.initial_inbound_at,rih.unit_cost,rih.reusable_pallet_id,
1171
+ rih.batch_id,plt.name,rih.batch_id_ref,rih.product_id,rih.packing_type,rih.bizplace_id,rih.location_id,prd.id,bz.id,loc.id,wh.name,rih.remark,rih.expiration_date,rih.manufacture_date,rih.status
1172
+ having 1=1 and (case when rih.status = 'TERMINATED' and SUM(CASE WHEN oi.status = 'LOADING' or (oi.status = 'SORTING' AND oi.type = 'RELEASE_OF_GOODS') THEN oi.release_qty ELSE 0 END) > 0 then rih.status = 'TERMINATED' else rih.status <> 'TERMINATED' end)
1173
+ order by created_at desc
1174
+ );
1175
+ `
1176
+ )
1177
+
1178
+ const total: any = await tx.query(`select count(*) from tmp_result`)
1144
1179
 
1145
1180
  const result: any = await tx.query(
1146
1181
  `
@@ -1154,18 +1189,25 @@ export class InventoryHistoryQuery {
1154
1189
  loc.id as location_id, loc.name as location_name, loc."zone" as location_zone, loc."row" as location_row, loc."column" as location_column, loc.shelf as location_shelf,
1155
1190
  wh.name as warehouse_name, plt.name as reusable_pallet_name,
1156
1191
  rih.remark,
1192
+ rih.manufacture_date as "manufactureDate",
1157
1193
  rih.expiration_date as "expirationDate"
1194
+ ,sum(case when oi.status = 'LOADING' or (oi.status = 'SORTING' and oi.type = 'RELEASE_OF_GOODS') then oi.release_qty else 0 end) as "nonLoadedQty"
1195
+ ,sum(case when oi.status = 'LOADING' or (oi.status = 'SORTING' and oi.type = 'RELEASE_OF_GOODS') then (oi.release_uom_value / oi.release_qty* oi.release_qty) else 0 end) as "nonLoadedUomValue"
1158
1196
  from tmp_data rih
1159
1197
  left join pallets plt on plt.id = rih.reusable_pallet_id
1160
1198
  inner join products prd on prd.id = rih.product_id
1161
1199
  inner join bizplaces bz on bz.id = rih.bizplace_id
1162
1200
  inner join locations loc on loc.id = rih.location_id
1163
1201
  inner join warehouses wh on wh.id = loc.warehouse_id
1164
- WHERE 1 = 1
1202
+ inner join order_inventories oi on oi.inventory_id = rih.inventory_id
1203
+ group by rih.inventory_id,rih.domain_id,rih.pallet_id,rih.carton_id,rih.qty,rih.uom_value,rih.uom,rih.last_seq,rih.created_at, rih.initial_inbound_at,rih.unit_cost,rih.reusable_pallet_id,
1204
+ rih.batch_id,plt.name,rih.batch_id_ref,rih.product_id,rih.packing_type,rih.bizplace_id,rih.location_id,prd.id,bz.id,loc.id,wh.name,rih.remark,rih.expiration_date,rih.manufacture_date,rih.status
1205
+ having 1=1 and (case when rih.status = 'TERMINATED' and SUM(CASE WHEN oi.status = 'LOADING' or (oi.status = 'SORTING' AND oi.type = 'RELEASE_OF_GOODS') THEN oi.release_qty ELSE 0 END) > 0 then rih.status = 'TERMINATED' else rih.status <> 'TERMINATED' end)
1165
1206
  ${queryOrder}
1166
1207
  ${setPagination ? 'OFFSET ' + (pagination.page - 1) * pagination.limit + ' LIMIT ' + pagination.limit : ''}
1167
1208
  `
1168
1209
  )
1210
+ //comment end
1169
1211
 
1170
1212
  // map all results
1171
1213
  let items = result.map(itm => {
@@ -1317,6 +1359,173 @@ export class InventoryHistoryQuery {
1317
1359
  return { items, total }
1318
1360
  }
1319
1361
 
1362
+ @Directive('@transaction')
1363
+ @Query(returns => InventoryHistoryVolumeSummaryReportList)
1364
+ async inventoryHistoryVolumeSummaryReport(
1365
+ @Args() params: ListParam,
1366
+ @Ctx() context: any
1367
+ ): Promise<InventoryHistoryVolumeSummaryReportList> {
1368
+ try {
1369
+ const { domain, user, tx }: { domain: Domain; user: User; tx: EntityManager } = context.state
1370
+
1371
+ let bizplaceFilter = { name: '', operator: '', value: '' }
1372
+
1373
+ let userFilter = params.filters.find(data => data.name === 'user')
1374
+ let fromDate = params.filters.find(data => data.name === 'fromDate')
1375
+ let toDate = params.filters.find(data => data.name === 'toDate')
1376
+
1377
+ if (userFilter) {
1378
+ const user: User = await tx.getRepository(User).findOne({
1379
+ where: { id: userFilter.value },
1380
+ relations: ['bizplaces']
1381
+ })
1382
+
1383
+ const bizplace: Bizplace = user.bizplaces[0]
1384
+
1385
+ if (!bizplace) throw 'Invalid input'
1386
+
1387
+ bizplaceFilter = { name: 'bizplace', operator: 'eq', value: bizplace.id }
1388
+ } else {
1389
+ bizplaceFilter = params.filters.find(data => data.name === 'bizplace')
1390
+ }
1391
+
1392
+ if (!bizplaceFilter || !fromDate || !toDate) throw 'Invalid input'
1393
+
1394
+ const bizplace: Bizplace = await tx.getRepository(Bizplace).findOne({
1395
+ id: bizplaceFilter.value
1396
+ })
1397
+
1398
+ //check if all product details got volume
1399
+ let foundPermittedBizplace: Bizplace
1400
+
1401
+ if (bizplace) {
1402
+ foundPermittedBizplace = await tx.getRepository(Bizplace).findOne(bizplace.id, {
1403
+ relations: ['company', 'company.domain']
1404
+ })
1405
+
1406
+ const companyDomain: Domain = foundPermittedBizplace.company.domain
1407
+
1408
+ let foundProductDetail = await tx
1409
+ .getRepository(ProductDetail)
1410
+ .findOne({ where: { domain: companyDomain, volume: IsNull() || 0 } })
1411
+
1412
+ if (foundProductDetail) {
1413
+ throw new Error('there is product master with empty volume')
1414
+ }
1415
+ }
1416
+
1417
+ await tx.query(
1418
+ `
1419
+ create temp table temp_reduced_inventory_histories ON COMMIT drop as (
1420
+ select
1421
+ row_number() over (order by cast(rih.created_at + (interval '8 hour') as DATE) ASC) as row,
1422
+ SUM(case when rih.transaction_type in ('UNLOADING', 'RETURN') then rih.qty end) as "inboundQty",
1423
+ round(cast(SUM(case when rih.transaction_type in ('UNLOADING', 'RETURN') then rih.qty * pd.volume end) as numeric), 2) as "inboundVolume",
1424
+ SUM(case when rih.transaction_type in ('ADJUSTMENT', 'NEW', 'CC_ADJUSTMENT') then rih.qty end) as "adjustedQty",
1425
+ round(cast(SUM(case when rih.transaction_type in ('ADJUSTMENT', 'NEW', 'CC_ADJUSTMENT') and rih.status <> 'MISSING' then rih.qty * pd.volume end) as numeric), 2) as "adjustedVolume",
1426
+ SUM(case when rih.transaction_type = 'ADJUSTMENT' and status = 'MISSING' then rih.opening_qty end) as "missingQty",
1427
+ round(cast(SUM(case when rih.transaction_type = 'ADJUSTMENT' and status = 'MISSING' then rih.opening_qty * pd.volume end) as numeric), 2) as "missingVolume",
1428
+ SUM(case when rih.transaction_type = 'PICKING' then -(rih.qty) end) as "outboundQty",
1429
+ round(cast(SUM(case when rih.transaction_type = 'PICKING' then -(rih.qty) * pd.volume end) as numeric), 2) as "outboundVolume",
1430
+ SUM(case when rih.transaction_type in ('UNLOADING', 'ADJUSTMENT', 'PICKING', 'NEW', 'RETURN', 'CC_ADJUSTMENT') then rih.qty end) - SUM(case when rih.transaction_type = 'ADJUSTMENT' and status = 'MISSING' then rih.opening_qty else 0 end) as "tempTotal",
1431
+ round(cast(SUM(case when rih.transaction_type in ('UNLOADING', 'ADJUSTMENT', 'PICKING', 'NEW', 'RETURN', 'CC_ADJUSTMENT') then rih.qty * pd.volume end) - round(cast(SUM(case when rih.transaction_type = 'ADJUSTMENT' and status = 'MISSING' then rih.opening_qty * pd.volume else 0 end) as numeric), 2) as numeric), 2) as "tempTotalVolume",
1432
+ rih.bizplace_id as bizplace_id,
1433
+ cast(rih.created_at + (interval '8 hour') as DATE) as "tempDate"
1434
+ from reduced_inventory_histories rih
1435
+ left join product_details pd on pd.product_id = rih.product_id and pd.packing_type = rih.packing_type
1436
+ where rih.status not like 'TERMINATED' and rih.bizplace_id = $1
1437
+ group by CAST(rih.created_at + (interval '8 hour') as DATE), rih.bizplace_id
1438
+ )
1439
+ `,
1440
+ [bizplace.id]
1441
+ )
1442
+
1443
+ await tx.query(
1444
+ `
1445
+ create temp table temp_reduced_inventory_histories_with_date_range ON COMMIT drop as (
1446
+ select
1447
+ coalesce(tmp."tempDate", dr.range_date) as date,
1448
+ row_number() over (order by coalesce(tmp."tempDate", dr.range_date) ASC) as row,
1449
+ coalesce(tmp."inboundQty", 0) as "inboundQty",
1450
+ coalesce(tmp."inboundVolume", 0) as "inboundVolume",
1451
+ coalesce(tmp."adjustedQty", 0) as "adjustedQty",
1452
+ coalesce(tmp."adjustedVolume", 0) as "adjustedVolume",
1453
+ coalesce(tmp."missingQty", 0) as "missingQty",
1454
+ coalesce(tmp."missingVolume", 0) as "missingVolume",
1455
+ coalesce(tmp."outboundQty", 0) as "outboundQty",
1456
+ coalesce(tmp."outboundVolume", 0) as "outboundVolume",
1457
+ '${bizplace.id}' as bizplace_id,
1458
+ (case when tmp."tempTotal" isnull then 0 else tmp."tempTotal" end) as total, (case when tmp."tempTotalVolume" isnull then 0 else tmp."tempTotalVolume" end) as "totalVolume"
1459
+ from temp_reduced_inventory_histories tmp
1460
+ full join (
1461
+ select date_trunc('day', dd):: date as range_date
1462
+ from generate_series
1463
+ ( $1::timestamp
1464
+ , $2::timestamp
1465
+ , '1 day'::interval) dd
1466
+ ) dr on dr.range_date = tmp."tempDate" order by date
1467
+ )
1468
+ `,
1469
+ [fromDate.value, toDate.value]
1470
+ )
1471
+
1472
+ await tx.query(
1473
+ `
1474
+ create temp table temp_result ON COMMIT drop as(
1475
+ select lag(sub."closingQty", 1, 0) over (partition by sub.bizplace_id order by sub.date) as "openingQty",
1476
+ lag(sub."closingVolume", 1, 0) over (partition by sub.bizplace_id order by sub.date) as "openingVolume", sub.* from(
1477
+ select (select sum(tmp2.total) from temp_reduced_inventory_histories_with_date_range tmp2 where tmp2.row <= tmp.row) as "closingQty",
1478
+ (select sum(tmp2."totalVolume") from temp_reduced_inventory_histories_with_date_range tmp2 where tmp2.row <= tmp.row) as "closingVolume", tmp.* from
1479
+ temp_reduced_inventory_histories_with_date_range tmp) sub
1480
+ )
1481
+ `
1482
+ )
1483
+
1484
+ await tx.query(
1485
+ `
1486
+ create temp table temp_final ON COMMIT drop as(
1487
+ select * from temp_result tr where tr.date between $1 and $2 OFFSET $3 LIMIT $4
1488
+ )
1489
+ `,
1490
+ [fromDate.value, toDate.value, (params.pagination.page - 1) * params.pagination.limit, params.pagination.limit]
1491
+ )
1492
+
1493
+ const result: any = await tx.query(
1494
+ `
1495
+ select * from temp_final
1496
+ `
1497
+ )
1498
+
1499
+ const total: any = await tx.query(
1500
+ `
1501
+ select count(*), sum(tmp."inboundQty") as "totalInboundQty", sum(tmp."inboundVolume") as "totalInboundVolume",
1502
+ sum(tmp."adjustedQty") as "totalAdjustedQty", sum(tmp."adjustedVolume") as "totalAdjustedVolume",
1503
+ sum(tmp."missingQty") as "totalMissingQty", sum(tmp."missingVolume") as "totalMissingVolume",
1504
+ sum(tmp."outboundQty") as "totalOutboundQty", sum(tmp."outboundVolume") as "totalOutboundVolume" from temp_final tmp
1505
+ `
1506
+ )
1507
+
1508
+ return {
1509
+ items: result,
1510
+ total: total[0].count,
1511
+ totalOpeningQty: result?.length > 0 ? result[0].openingQty : 0,
1512
+ totalOpeningVolume: result?.length > 0 ? result[0].openingVolume : 0,
1513
+ totalInboundQty: result?.length > 0 ? total[0].totalInboundQty : 0,
1514
+ totalInboundVolume: result?.length > 0 ? total[0].totalInboundVolume : 0,
1515
+ totalAdjustedQty: result?.length > 0 ? total[0].totalAdjustedQty : 0,
1516
+ totalAdjustedVolume: result?.length > 0 ? total[0].totalAdjustedVolume : 0,
1517
+ totalMissingQty: result?.length > 0 ? total[0].totalMissingQty : 0,
1518
+ totalMissingVolume: result?.length > 0 ? total[0].totalMissingVolume : 0,
1519
+ totalOutboundQty: result?.length > 0 ? total[0].totalOutboundQty : 0,
1520
+ totalOutboundVolume: result?.length > 0 ? total[0].totalOutboundVolume : 0,
1521
+ totalClosingQty: result?.length > 0 ? result[result.length - 1].closingQty : 0,
1522
+ totalClosingVolume: result?.length > 0 ? result[result.length - 1].closingVolume : 0
1523
+ }
1524
+ } catch (error) {
1525
+ throw error
1526
+ }
1527
+ }
1528
+
1320
1529
  @FieldResolver(type => Domain)
1321
1530
  async domain(@Root() inventoryHistory: InventoryHistory) {
1322
1531
  return await getRepository(Domain).findOne(inventoryHistory.domainId)
@@ -1348,11 +1557,12 @@ async function massageInventorySummary(tx: EntityManager, params: ListParam, biz
1348
1557
  `
1349
1558
  create temp table temp_inventory_summary ON COMMIT DROP as (
1350
1559
  select src.*,
1351
- opening_qty + adjustment_qty + total_in_qty + total_out_qty as closing_qty
1560
+ opening_qty + adjustment_qty + total_in_qty + total_out_qty + missing_qty as closing_qty
1352
1561
  from (
1353
1562
  select prd.sku AS product_sku, prd.name as product_name, prd.description as product_description, prd.type AS product_type, ih.packing_type, ih.packing_size,
1354
1563
  sum(case when ih.created_at >= $1 and ih.transaction_type = 'ADJUSTMENT' then ih.qty else 0 end) as adjustment_qty,
1355
1564
  sum(case when ih.created_at < $1 then qty else 0 end) as opening_qty,
1565
+ sum(case when ih.status = 'MISSING' then -ih.opening_qty else 0 end) as missing_qty,
1356
1566
  sum(case when ih.created_at >= $1 then case when ih.qty > 0 and ih.transaction_type <> 'ADJUSTMENT' then ih.qty else 0 end else 0 end) as total_in_qty,
1357
1567
  sum(case when ih.created_at >= $1 then case when ih.qty < 0 and ih.transaction_type <> 'ADJUSTMENT' then ih.qty else 0 end else 0 end) as total_out_qty,
1358
1568
  ih.product_id