Ejemplo n.º 1
0
        public string GenerateNumber(GenerateDocNumberInput input)
        {
            while (true)
            {
                DOC_NUMBER_SEQ docSeqNumberToInsertOrUpdate;

                var docNumber = GetGenerateNumber(input, out docSeqNumberToInsertOrUpdate);
                var isAlreadyExists = IsDocumentNumberAlreadyExists(docNumber);

                if (isAlreadyExists)
                    continue;

                if (docSeqNumberToInsertOrUpdate.DOC_NUMBER_SEQ_ID > 0)
                {
                    //update
                    _repository.Update(docSeqNumberToInsertOrUpdate);
                }
                else
                {
                    //insert new record
                    _repository.Insert(docSeqNumberToInsertOrUpdate);
                }

                _uow.SaveChanges();

                return docNumber;
            }
        }
Ejemplo n.º 2
0
        public string GenerateNumber(GenerateDocNumberInput input)
        {
            while (true)
            {
                TRA_DOC_NUMBER docSeqNumberToInsert;

                var docType = _docTypeRepository.Get(x => x.MST_DOCUMENT_TYPE_ID == input.DocType).FirstOrDefault().DOCUMENT_INISIAL;

                var lastSeqData = _docNumberRepository.Get(c => c.DOCUMENT_TYPE == input.DocType && c.MONTH == input.Month && c.YEAR == input.Year).Count();
                lastSeqData = lastSeqData + 1;

                var docNumber = lastSeqData.ToString("000");

                //generate number
                docNumber = docType + "/" + input.Year + "/" + input.Month.ToString("00") + "/" + docNumber;

                docSeqNumberToInsert = new TRA_DOC_NUMBER()
                {
                    MONTH           = input.Month,
                    YEAR            = input.Year,
                    DOCUMENT_NUMBER = docNumber,
                    DOCUMENT_TYPE   = input.DocType
                };

                _docNumberRepository.Insert(docSeqNumberToInsert);

                return(docNumber);
            }
        }
Ejemplo n.º 3
0
        public string InsertPbck3FromPbck7(InsertPbck3FromPbck7Input input)
        {
            //generate pbck3number

            var generateNumberInput = new GenerateDocNumberInput()
            {
                Year     = DateTime.Now.Year,
                Month    = DateTime.Now.Month,
                NppbkcId = input.NppbkcId,
                FormType = Enums.FormType.PBCK3
            };

            var dbPbck3 = new PBCK3
            {
                PBCK3_NUMBER   = _documentSequenceNumberBll.GenerateNumber(generateNumberInput),
                PBCK3_DATE     = DateTime.Now,
                STATUS         = Enums.DocumentStatus.Draft,
                CREATED_BY     = input.UserId,
                CREATED_DATE   = DateTime.Now,
                PBCK7_ID       = input.Pbck7Id,
                EXEC_DATE_FROM = input.Pbck7ExecFrom,
                EXEC_DATE_TO   = input.Pbck7ExecTo
            };

            _repository.InsertOrUpdate(dbPbck3);

            return(dbPbck3.PBCK3_NUMBER);
        }
Ejemplo n.º 4
0
        public string GetNumber()
        {
            var inputDoc = new GenerateDocNumberInput();

            inputDoc.Month   = DateTime.Now.Month;
            inputDoc.Year    = DateTime.Now.Year;
            inputDoc.DocType = (int)Enums.DocumentType.CCF;
            var number = _docNumberService.GenerateNumber(inputDoc);

            return(number);
        }
Ejemplo n.º 5
0
        public TemporaryDto SaveTemp(TemporaryDto item, DateTime expectedDate, Login CurrentUser)
        {
            TRA_TEMPORARY model;

            if (item == null)
            {
                throw new Exception("Invalid Data Entry");
            }

            try
            {
                if (item.TRA_TEMPORARY_ID > 0)
                {
                    //update
                    model = _temporaryService.GetTemporaryById(item.TRA_TEMPORARY_ID);

                    if (model == null)
                    {
                        throw new BLLException(ExceptionCodes.BLLExceptions.DataNotFound);
                    }

                    Mapper.Map <TemporaryDto, TRA_TEMPORARY>(item, model);
                }
                else
                {
                    var inputDoc = new GenerateDocNumberInput();
                    inputDoc.Month   = DateTime.Now.Month;
                    inputDoc.Year    = DateTime.Now.Year;
                    inputDoc.DocType = (int)Enums.DocumentType.TMP;

                    item.DOCUMENT_NUMBER_TEMP = _docNumberService.GenerateNumber(inputDoc);
                    item.IS_ACTIVE            = true;

                    model = Mapper.Map <TRA_TEMPORARY>(item);
                }

                _temporaryService.saveTemporary(model, CurrentUser);
                var data = _CrfService.GetByNumber(item.DOCUMENT_NUMBER_RELATED);
                data.EXPECTED_DATE = expectedDate;
                _CrfService.SaveCrf(data, null);
                _uow.SaveChanges();
            }
            catch (Exception exception)
            {
                throw exception;
            }

            return(Mapper.Map <TemporaryDto>(model));
        }
        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);
        }
Ejemplo n.º 7
0
        public void Save(CarComplaintFormDto CCFDto, CarComplaintFormDtoDetil CCFDtoD1)
        {
            TRA_CCF model;

            if (CCFDto.TraCcfId > 0)
            {
                //update
                model = _ccf.GetCCFById(CCFDto.TraCcfId);

                if (model == null)
                {
                    throw new BLLException(ExceptionCodes.BLLExceptions.DataNotFound);
                }

                Mapper.Map <CarComplaintFormDto, TRA_CCF>(CCFDto, model);
            }
            else
            {
                var inputDoc = new GenerateDocNumberInput();

                inputDoc.Month   = DateTime.Now.Month;
                inputDoc.Year    = DateTime.Now.Year;
                inputDoc.DocType = (int)Enums.DocumentType.CCF;

                CCFDto.DocumentNumber = _docNumberService.GenerateNumber(inputDoc);

                model = Mapper.Map <TRA_CCF>(CCFDto);


                model.TRA_CCF_ID = Convert.ToInt64(CCFDto.TraCcfId);
            }
            TRA_CCF_DETAIL model_d1;

            model_d1 = Mapper.Map <TRA_CCF_DETAIL>(CCFDtoD1);

            _ccf.save(model, model_d1);
            _uow.SaveChanges();

            //_ccf.save(dbCCF);
        }
Ejemplo n.º 8
0
        public TemporaryDto Save(TemporaryDto item, Login userLogin)
        {
            TRA_TEMPORARY model;

            if (item == null)
            {
                throw new Exception("Invalid Data Entry");
            }

            try
            {
                bool changed = false;

                if (item.TRA_TEMPORARY_ID > 0)
                {
                    //update
                    model = _TemporaryService.GetTemporaryById(item.TRA_TEMPORARY_ID);

                    if (model == null)
                    {
                        throw new BLLException(ExceptionCodes.BLLExceptions.DataNotFound);
                    }

                    Mapper.Map <TemporaryDto, TRA_TEMPORARY>(item, model);

                    changed = true;
                }
                else
                {
                    var inputDoc = new GenerateDocNumberInput();
                    inputDoc.Month   = DateTime.Now.Month;
                    inputDoc.Year    = DateTime.Now.Year;
                    inputDoc.DocType = (int)Enums.DocumentType.TMP;

                    item.DOCUMENT_NUMBER_TEMP = _docNumberService.GenerateNumber(inputDoc);
                    item.IS_ACTIVE            = true;
                    item.EMPLOYEE_ID_CREATOR  = userLogin.EMPLOYEE_ID;

                    model = Mapper.Map <TRA_TEMPORARY>(item);
                }

                _TemporaryService.saveTemporary(model, userLogin);
                _uow.SaveChanges();

                //set workflow history
                var input = new TempWorkflowDocumentInput()
                {
                    DocumentId = model.TRA_TEMPORARY_ID,
                    ActionType = Enums.ActionType.Modified,
                    UserId     = userLogin.USER_ID
                };

                if (changed)
                {
                    AddWorkflowHistory(input);
                }
                _uow.SaveChanges();
            }
            catch (Exception exception)
            {
                throw exception;
            }

            return(Mapper.Map <TemporaryDto>(model));
        }
Ejemplo n.º 9
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;
        }