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; } }
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); } }
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); }
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); }
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); }
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); }
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)); }
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; }