protected static FR_Guid Execute(DbConnection Connection, DbTransaction Transaction, P_L5RS_CNfRS_1119 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { #region UserCode var returnValue = new FR_Guid(); #region Create and Save ReceivedCreditNotes and ReturnShipmentCreditNoteHeader var newCreditNoteHeader = new ORM_LOG_SHP_ReturnShipment_ReceivableCreditNote_Header(); var newReceivedCreditNotes = new ORM_ACC_CRN_ReceivedCreditNote(); if (Parameter.headerId == Guid.Empty) { #region Create ReceivedCreditNotes newReceivedCreditNotes.ACC_CRN_ReceivedCreditNoteID = Guid.NewGuid(); newReceivedCreditNotes.Creation_Timestamp = DateTime.Now; newReceivedCreditNotes.CreditNote_Number = Parameter.headerNumber; newReceivedCreditNotes.CreditNote_Value = Parameter.headerValue; newReceivedCreditNotes.CreditNote_Currency_RefID = Parameter.currencyRef; newReceivedCreditNotes.DateOnCreditNote = Parameter.creditNoteDate; newReceivedCreditNotes.Tenant_RefID = securityTicket.TenantID; newReceivedCreditNotes.CreditNoteITPL = ""; // TODO:Marko - Temporary! We are not sure how to set this field. Will be decided in the future. var resultReceivedCreditNote = newReceivedCreditNotes.Save(Connection, Transaction); if (resultReceivedCreditNote.Status != FR_Status.Success) { returnValue.Status = FR_Status.Error_Internal; returnValue.Result = Guid.Empty; return(returnValue); } #endregion #region Create ReturnShipment_ReceivableCreditNote_Header newCreditNoteHeader.LOG_SHP_ReturnShipment_ReceivableCreditNote_HeaderID = Guid.NewGuid(); newCreditNoteHeader.Ext_ACC_CRN_ReceivedCreditNote_RefID = newReceivedCreditNotes.ACC_CRN_ReceivedCreditNoteID; newCreditNoteHeader.Creation_Timestamp = DateTime.Now; newCreditNoteHeader.IsDeleted = false; newCreditNoteHeader.Tenant_RefID = securityTicket.TenantID; var resultCreditNoteHeader = newCreditNoteHeader.Save(Connection, Transaction); if (resultCreditNoteHeader.Status != FR_Status.Success) { returnValue.Status = FR_Status.Error_Internal; returnValue.Result = Guid.Empty; return(returnValue); } #endregion } else { #region Load ReceivedCreditNotes and update Value newCreditNoteHeader.Load(Connection, Transaction, Parameter.headerId); if (newCreditNoteHeader.LOG_SHP_ReturnShipment_ReceivableCreditNote_HeaderID == Guid.Empty) { returnValue.Status = FR_Status.Error_Internal; returnValue.Result = Guid.Empty; return(returnValue); } newReceivedCreditNotes.Load(Connection, Transaction, newCreditNoteHeader.Ext_ACC_CRN_ReceivedCreditNote_RefID); if (newReceivedCreditNotes.ACC_CRN_ReceivedCreditNoteID == Guid.Empty) { returnValue.Status = FR_Status.Error_Internal; returnValue.Result = Guid.Empty; return(returnValue); } newReceivedCreditNotes.CreditNote_Value = newReceivedCreditNotes.CreditNote_Value + Parameter.headerValue; var resultReceivedCreditNotes = newReceivedCreditNotes.Save(Connection, Transaction); if (resultReceivedCreditNotes.Status != FR_Status.Success) { returnValue.Status = FR_Status.Error_Internal; returnValue.Result = Guid.Empty; return(returnValue); } #endregion } #endregion #region Create CreditNote Positions with CreditNote 2 Receipt positions if (Parameter.receiptPositions != null) { foreach (var position in Parameter.receiptPositions) { #region Create CreditNote Position var newRetShpCreditNotePosition = new ORM_LOG_SHP_ReturnShipment_ReceivableCreditNote_Position(); newRetShpCreditNotePosition.LOG_SHP_ReturnShipment_ReceivableCreditNote_PositionID = Guid.NewGuid(); newRetShpCreditNotePosition.Creation_Timestamp = DateTime.Now; newRetShpCreditNotePosition.IsDeleted = false; newRetShpCreditNotePosition.Tenant_RefID = securityTicket.TenantID; newRetShpCreditNotePosition.LOG_SHP_ReturnShipment_CreditNotes_Header_RefID = newCreditNoteHeader.LOG_SHP_ReturnShipment_ReceivableCreditNote_HeaderID; var resultRetShpCreditNotePosition = newRetShpCreditNotePosition.Save(Connection, Transaction); if (resultRetShpCreditNotePosition.Status != FR_Status.Success) { returnValue.Status = FR_Status.Error_Internal; returnValue.Result = Guid.Empty; return(returnValue); } #endregion #region Create CreditNote 2 Receipt Position var newReceiptCreditNotePosition = new ORM_LOG_SHP_RSH_ReceivableCreditNote_2_ReceiptPosition(); newReceiptCreditNotePosition.AssignmentID = Guid.NewGuid(); newReceiptCreditNotePosition.Creation_Timestamp = DateTime.Now; newReceiptCreditNotePosition.Tenant_RefID = securityTicket.TenantID; newReceiptCreditNotePosition.LOG_SHP_ReturnShipment_ReceivableCreditNote_Position_RefID = newRetShpCreditNotePosition.LOG_SHP_ReturnShipment_ReceivableCreditNote_PositionID; newReceiptCreditNotePosition.LOG_RCP_Receipt_Position_RefID = position.receiptPositionId; newReceiptCreditNotePosition.IsFullCompensationForReceivableCreditNotePosition = position.IsFullCompesationForReceivableCreditNotePosition; newReceiptCreditNotePosition.CompensationValue = (float)position.compesationValue; var resultReceiptCreditNotePosition = newReceiptCreditNotePosition.Save(Connection, Transaction); if (resultReceiptCreditNotePosition.Status != FR_Status.Success) { returnValue.Status = FR_Status.Error_Internal; returnValue.Result = Guid.Empty; return(returnValue); } #endregion } } #endregion #region Create ReturnShipment Position 2 CreditNote if (Parameter.returnShipmentPositions != null) { foreach (Guid position in Parameter.returnShipmentPositions) { var newRetShpCreditNotePosition = new ORM_LOG_SHP_ReturnShipment_ReceivableCreditNote_Position(); newRetShpCreditNotePosition.LOG_SHP_ReturnShipment_ReceivableCreditNote_PositionID = Guid.NewGuid(); newRetShpCreditNotePosition.Creation_Timestamp = DateTime.Now; newRetShpCreditNotePosition.IsDeleted = false; newRetShpCreditNotePosition.Tenant_RefID = securityTicket.TenantID; newRetShpCreditNotePosition.LOG_SHP_ReturnShipment_CreditNotes_Header_RefID = newCreditNoteHeader.LOG_SHP_ReturnShipment_ReceivableCreditNote_HeaderID; var resultRetShpCreditNotePosition = newRetShpCreditNotePosition.Save(Connection, Transaction); if (resultRetShpCreditNotePosition.Status != FR_Status.Success) { returnValue.Status = FR_Status.Error_Internal; returnValue.Result = Guid.Empty; return(returnValue); } var newRetShipmentPosForCN = new ORM_LOG_SHP_ReturnShipment_Position_2_ReceivableCreditNote(); newRetShipmentPosForCN.Creation_Timestamp = DateTime.Now; newRetShipmentPosForCN.IsDeleted = false; newRetShipmentPosForCN.Tenant_RefID = securityTicket.TenantID; newRetShipmentPosForCN.AssignmentID = Guid.NewGuid(); newRetShipmentPosForCN.LOG_SHP_ReturnShipment_Position_RefID = position; newRetShipmentPosForCN.LOG_SHP_ReturnShipment_ReceivableCreditNotes_Position_RefID = newRetShpCreditNotePosition.LOG_SHP_ReturnShipment_ReceivableCreditNote_PositionID; var resultRetShipmentPosForCN = newRetShipmentPosForCN.Save(Connection, Transaction); if (resultRetShipmentPosForCN.Status != FR_Status.Success) { returnValue.Status = FR_Status.Error_Internal; returnValue.Result = Guid.Empty; return(returnValue); } } } #endregion returnValue.Status = FR_Status.Success; returnValue.Result = newCreditNoteHeader.LOG_SHP_ReturnShipment_ReceivableCreditNote_HeaderID; return(returnValue); #endregion UserCode }
///<summary> /// Invokes the method for the given Connection, and Transaction, leaving them open/not commited if no exceptions occured ///<summary> public static FR_Guid Invoke(DbConnection Connection, DbTransaction Transaction, P_L5RS_CNfRS_1119 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { return(Invoke(Connection, Transaction, null, Parameter, securityTicket)); }
///<summary> /// Method Invocation of wrapper classes ///<summary> protected static FR_Guid Invoke(DbConnection Connection, DbTransaction Transaction, string ConnectionString, P_L5RS_CNfRS_1119 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { bool cleanupConnection = Connection == null; bool cleanupTransaction = Transaction == null; FR_Guid functionReturn = new FR_Guid(); try { if (cleanupConnection == true) { Connection = CSV2Core_MySQL.Support.DBSQLSupport.CreateConnection(ConnectionString); Connection.Open(); } if (cleanupTransaction == true) { Transaction = Connection.BeginTransaction(); } functionReturn = Execute(Connection, Transaction, Parameter, securityTicket); #region Cleanup Connection/Transaction //Commit the transaction if (cleanupTransaction == true) { Transaction.Commit(); } //Close the connection if (cleanupConnection == true) { Connection.Close(); } #endregion } catch (Exception ex) { try { if (cleanupTransaction == true && Transaction != null) { Transaction.Rollback(); } } catch { } try { if (cleanupConnection == true && Connection != null) { Connection.Close(); } } catch { } throw new Exception("Exception occured in method cls_Save_CreditNote_for_ReturnShipment", ex); } return(functionReturn); }
///<summary> /// Opens the connection/transaction for the given connectionString, and closes them when complete ///<summary> public static FR_Guid Invoke(string ConnectionString, P_L5RS_CNfRS_1119 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { return(Invoke(null, null, ConnectionString, Parameter, securityTicket)); }