///<summary> ///Purpose : Generate contract doc OCC ///Parameters: strCode = FN0000000017 /// strOCC = AA ///Expected : Return contract doc occ that is 02. ///</summary> public string Case2() { IContractDocumentHandler target = ServiceContainer.GetService <IContractDocumentHandler>() as IContractDocumentHandler; string strCode = "FN0000000017"; string strOCC = "AA"; string expected = "02"; string actual; try { actual = target.GenerateDocOCC(strCode, strOCC); } catch (ApplicationErrorException ex) { actual = ex.ErrorResult.Message.Code; } catch (Exception ex) { actual = ex.StackTrace; } return(string.Format(RESULT_FORMAT, 2, expected, actual, CompareResult_String(expected, actual))); }
/// <summary> /// Register data /// </summary> /// <param name="dt"></param> /// <returns></returns> private bool CTS190_Register(dtContractDocHeader dt) { List <tbt_ContractDocument> lsInsert = null; //Add by Jutarat A. on 12032013 List <tbt_ContractDocument> dtUpdate = null; //Add by Jutarat A. on 12032013 try { IContractDocumentHandler handlerCD = ServiceContainer.GetService <IContractDocumentHandler>() as IContractDocumentHandler; if (dt.IsCreateFlag) { // **tt** Create dt tbt_ContractDocument and update some field follow DDS (in case create) tbt_ContractDocument dtInsert = new tbt_ContractDocument(); dtInsert.ContractCode = dt.ContractCode; dtInsert.OCC = dt.OCC; dtInsert.DocumentCode = dt.DocumentCode; dtInsert.ContractOfficeCode = dt.ContractOfficeCode; dtInsert.OperationOfficeCode = dt.OperationOfficeCode; dtInsert.DocStatus = dt.DocStatus; dtInsert.DocAuditResult = dt.DocAuditResult; dtInsert.CollectDocDate = dt.CollectDocDate; dtInsert.IssuedDate = dt.IssuedDate; // Generate new Doc OCC string newDocOCC = ""; newDocOCC = handlerCD.GenerateDocOCC(dt.ContractCode, dt.OCC); dtInsert.ContractDocOCC = newDocOCC; dtInsert.DocNo = string.Format("{0}-{1}-{2}", dt.ContractCode, dt.OCC, newDocOCC); // Keep back dt.DocNo = string.Format("{0}-{1}-{2}", dt.ContractCode, dt.OCC, newDocOCC); //List<tbt_ContractDocument> lsInsert = new List<tbt_ContractDocument>(); lsInsert = new List <tbt_ContractDocument>(); //Modify by Jutarat A. on 12032013 lsInsert.Add(dtInsert); // Insert : InsertTbt_ContractDocument ** handlerCD.InsertTbt_ContractDocument(lsInsert); // Call UpdateContractBasic CTS190_UpdateContractBasicData(lsInsert); } else { // **tt** Get dt tbt_ContractDocument from handler and update some field follow DDS (in case update) //List<tbt_ContractDocument> dtUpdate = new List<tbt_ContractDocument>(); dtUpdate = new List <tbt_ContractDocument>(); //Modify by Jutarat A. on 12032013 if (dt.IsContractFlag.Value == true) { dtUpdate = handlerCD.GetContractDocHeaderByContractCode(dt.ContractCode, dt.OCC, dt.ContractDocOCC); } else { dtUpdate = handlerCD.GetContractDocHeaderByQuotationCode(dt.QuotationTargetCode, dt.Alphabet, dt.ContractDocOCC); } if (dtUpdate.Count == 0) { return(false); } for (int i = 0; i < dtUpdate.Count; i++) { dtUpdate[i].DocStatus = dt.DocStatus; dtUpdate[i].DocAuditResult = dt.DocAuditResult; dtUpdate[i].CollectDocDate = dt.CollectDocDate; } if (dtUpdate.Count > 1) { dtUpdate.RemoveRange(1, dtUpdate.Count - 1); } // Keep back dt.DocNo = dtUpdate[0].DocNo; // Set Not user status int isUpdated = handlerCD.SetNotUsedStatus(dtUpdate[0].ContractCode, dtUpdate[0].OCC, ContractDocStatus.C_CONTRACT_DOC_STATUS_NOT_USED, ContractDocStatus.C_CONTRACT_DOC_STATUS_COLLECTED, false, null); // Update : UpdateTbt_ContractDocument ** List <tbt_ContractDocument> tt_Updated = handlerCD.UpdateTbt_ContractDocument(dtUpdate); // Call UpdateContractBasic CTS190_UpdateContractBasicData(dtUpdate); // Update RentalSecurityBasic CTS190_UpdateRentalSecurityBasic(dtUpdate); // Update SalesBasic CTS190_UpdateSaleBasic(dtUpdate); // Update about PO (Recursive) if (dt.DocumentCode == DocumentCode.C_DOCUMENT_CODE_CONTRACT_EN || dt.DocumentCode == DocumentCode.C_DOCUMENT_CODE_CONTRACT_TH) { List <tbt_ContractDocument> dtContractDoc = handlerCD.GetContractDocHeaderByContractCode(dt.ContractCode, ParticularOCC.C_PARTICULAR_OCC_PO, null); if (dtContractDoc.Count == 0) { dtContractDocHeader dtPO = new dtContractDocHeader(); dtPO.IsCreateFlag = true; dtPO.IsContractFlag = false; dtPO.ContractCode = dtUpdate[0].ContractCode; dtPO.OCC = ParticularOCC.C_PARTICULAR_OCC_PO; dtPO.DocumentCode = DocumentCode.C_DOCUMENT_CODE_PO; dtPO.ContractOfficeCode = dtUpdate[0].ContractOfficeCode; dtPO.OperationOfficeCode = dtUpdate[0].OperationOfficeCode; dtPO.IssuedDate = CommonUtil.dsTransData.dtOperationData.ProcessDateTime; dtPO.DocStatus = ContractDocStatus.C_CONTRACT_DOC_STATUS_ISSUED; dtPO.DocAuditResult = DocAuditResult.C_DOC_AUDIT_RESULT_NO_NEED_TO_RECEIVE; // Recursive CTS190_Register(dtPO); } } } return(true); } catch (Exception ex) { //Add by Jutarat A. on 12032013 string source = "SIMS web application"; string logName = "(CTS190)Application"; string logDetail = ex.ToString(); if (!EventLog.SourceExists(source)) { EventLog.CreateEventSource(source, logName); } if (lsInsert != null && lsInsert.Count > 0) { logDetail = String.Format("{0} : {1}", ex.ToString(), CommonUtil.ConvertToXml_Store <tbt_ContractDocument>(lsInsert)); } else if (dtUpdate != null && dtUpdate.Count > 0) { logDetail = String.Format("{0} : {1}", ex.ToString(), CommonUtil.ConvertToXml_Store <tbt_ContractDocument>(dtUpdate)); } EventLog objLog = new EventLog(); objLog.Source = source; objLog.Log = logName; objLog.WriteEntry(logDetail, EventLogEntryType.Error); //End Add throw ex; } }