コード例 #1
0
        public long GetCurrentSequence(Enums.FormType formtype, EMSDataModel context, int?month = null, int?year = null)
        {
            try
            {
                var current         = 0L;
                var sequencePerForm = context.DOC_NUMBER_SEQ.Where(x => !x.FORM_TYPE_ID.HasValue).FirstOrDefault();

                if (sequencePerForm == null) // Not present yet
                {
                    var sequence = new DOC_NUMBER_SEQ()
                    {
                        DOC_NUMBER_SEQ_LAST = current,
                        FORM_TYPE_ID        = (int)formtype,
                        MONTH = month,
                        YEAR  = year
                    };

                    context.DOC_NUMBER_SEQ.Add(sequence);
                }
                else
                {
                    var newSequence = (DOC_NUMBER_SEQ)context.Entry(sequencePerForm).GetDatabaseValues().ToObject();
                    current = sequencePerForm.DOC_NUMBER_SEQ_LAST;
                    newSequence.DOC_NUMBER_SEQ_LAST = current + 1;
                    context.Entry(sequencePerForm).CurrentValues.SetValues(newSequence);
                }
                context.SaveChanges();

                return(current + 1);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
コード例 #2
0
        private string GetGenerateNumberByFormType(Enums.FormType formType, out DOC_NUMBER_SEQ docSeqNumberToInsertOrUpdate)
        {
            var lastSeqData = _repository.Get(c => c.FORM_TYPE_ID == formType).FirstOrDefault();

            if (lastSeqData == null)
            {
                //insert new record
                lastSeqData = new DOC_NUMBER_SEQ()
                {
                    YEAR = 0,
                    MONTH = 1, //have rellation with table MONTH so default will be 1
                    FORM_TYPE_ID = formType,
                    DOC_NUMBER_SEQ_LAST = 1
                };
            }
            else
            {
                lastSeqData.DOC_NUMBER_SEQ_LAST += 1;
            }

            docSeqNumberToInsertOrUpdate = lastSeqData;

            var docNumber = lastSeqData.DOC_NUMBER_SEQ_LAST.ToString("0000000000");
            return docNumber;
        }
コード例 #3
0
        public void GenerateNumber_WhenValidInput_GenerateDocumentNumber()
        {
            //arr
            var docNumberSeq = new DOC_NUMBER_SEQ()
            {
                MONTH = 1,
                YEAR  = 2015,
                DOC_NUMBER_SEQ_LAST = 1
            };

            var t001k = new T001K()
            {
                T001 = new T001()
                {
                    BUTXT = "Philip Morris Indonesia", BUTXT_ALIAS = "HMS-E", BUKRS = "3006"
                },
                T001W = new T001W()
                {
                    ZAIDM_EX_NPPBKC = new ZAIDM_EX_NPPBKC()
                    {
                        CITY_ALIAS = "SBY"
                    }
                }
            };

            var input = new GenerateDocNumberInput()
            {
                Month    = 1,
                Year     = 1,
                NppbkcId = "1"
            };

            _repository.Get().ReturnsForAnyArgs(new List <DOC_NUMBER_SEQ>()
            {
                docNumberSeq
            });
            _t001KReporRepository.Get().ReturnsForAnyArgs(new List <T001K> {
                t001k
            });

            string expectedResult = (docNumberSeq.DOC_NUMBER_SEQ_LAST + 1).ToString("0000000000") + "/" + t001k.T001.BUTXT_ALIAS + "/" + t001k.T001W.ZAIDM_EX_NPPBKC.CITY_ALIAS + "/" + MonthHelper.ConvertToRomansNumeral(input.Month) + "/" + input.Year.ToString();

            //act
            var result = _bll.GenerateNumber(input);

            //assert
            Assert.AreEqual(expectedResult, result);
        }
コード例 #4
0
        private string GetGenerateNumber(GenerateDocNumberInput input, out DOC_NUMBER_SEQ docSeqNumberToInsertOrUpdate)
        {
            var lastSeqData = _repository.Get(c => c.FORM_TYPE_ID != Enums.FormType.CK5).FirstOrDefault();

            if (lastSeqData == null)
            {
                //insert new record
                lastSeqData = new DOC_NUMBER_SEQ()
                {
                    YEAR = input.Year,
                    MONTH = input.Month,
                    DOC_NUMBER_SEQ_LAST = 1
                };
            }
            else
            {
                lastSeqData.DOC_NUMBER_SEQ_LAST += 1;
            }

            //var docNumber = lastSeqData.DOC_NUMBER_SEQ_LAST.ToString();//log : 2015-10-12
            var docNumber = lastSeqData.DOC_NUMBER_SEQ_LAST.ToString("0000000000"); //log : 2015-1013

            if (input.FormType != Enums.FormType.CK5)
            {
                //var t001Data =
                //    _t001KReporRepository.Get(
                //        c =>
                //            (c.T001W.NPPBKC_ID == input.NppbkcId || c.T001W.NPPBKC_IMPORT_ID == input.NppbkcId) && c.T001W.IS_MAIN_PLANT.HasValue &&
                //            c.T001W.IS_MAIN_PLANT.Value, null, "T001, T001W, T001W.ZAIDM_EX_NPPBKC").FirstOrDefault();
                //2016-07-12
                ////http://tp.voxteneo.co.id/entity/8347
                var t001Data =
                        _t001KReporRepository.Get(
                        c =>
                            (c.T001W.NPPBKC_ID == input.NppbkcId || c.T001W.NPPBKC_IMPORT_ID == input.NppbkcId), null,
                        "T001, T001W, T001W.ZAIDM_EX_NPPBKC").FirstOrDefault();

                if (t001Data == null || t001Data.T001 == null)
                {
                    throw new BLLException(ExceptionCodes.BLLExceptions.GenerateNumberCompanyDataHasNotSet);
                }

                if (string.IsNullOrEmpty(t001Data.T001.BUTXT_ALIAS))
                {
                    throw new BLLException(ExceptionCodes.BLLExceptions.GenerateNumberCompanyAliasHasNotSet);
                }

                if (t001Data.T001W == null || t001Data.T001W.ZAIDM_EX_NPPBKC == null)
                {
                    throw new BLLException(ExceptionCodes.BLLExceptions.GenerateNumberPlantDataHasNotSet);
                }

                if (string.IsNullOrEmpty(t001Data.T001W.ZAIDM_EX_NPPBKC.CITY_ALIAS))
                {
                    throw new BLLException(ExceptionCodes.BLLExceptions.GenerateNumberCityAliasHasNotSet);
                }

                //generate number
                docNumber = docNumber + "/" + t001Data.T001.BUTXT_ALIAS + "/" + t001Data.T001W.ZAIDM_EX_NPPBKC.CITY_ALIAS
                            + "/" + MonthHelper.ConvertToRomansNumeral(input.Month) + "/" + input.Year;

            }

            docSeqNumberToInsertOrUpdate = lastSeqData;

            return docNumber;
        }