예제 #1
0
 void _recordContext_Saving(object sender, System.ComponentModel.CancelEventArgs e)
 {
     _recordContext.TriggerNamedEvent("OnSaving");
     if (IsCanceled == true)
     {
         e.Cancel   = true;
         IsCanceled = false;
     }
 }
예제 #2
0
        /// <summary>
        /// Funtion to handle ebs webservice response
        /// </summary>
        /// <param name="respJson">response in jSON string</param>
        public void ExtractResponse(string jsonResp, int numOfVIN, int shipToSiteID, int partOdrInstrID)
        {
            Dictionary <String, object> retunTblItem;
            //Extract response
            var deserializeJson = new JavaScriptSerializer().Deserialize <dynamic>(jsonResp);
            Dictionary <String, object> data             = (Dictionary <string, object>)deserializeJson;
            Dictionary <String, object> outputParameters = (Dictionary <String, object>)data["OutputParameters"];
            Dictionary <String, object> returnTbl        = (Dictionary <String, object>)outputParameters["P_RETURN_TBL"];

            //Check if its an array, is so extract first element
            if (IsArray(returnTbl["P_RETURN_TBL_ITEM"]))
            {
                object[] tblItems = (object[])returnTbl["P_RETURN_TBL_ITEM"];
                retunTblItem = (Dictionary <string, object>)tblItems[0];
            }
            else
            {
                retunTblItem = (Dictionary <String, object>)returnTbl["P_RETURN_TBL_ITEM"];
            }

            if (retunTblItem["HASERROR"].ToString() == "0")//If Success
            {
                //if (partsOrderID != 0)
                //{
                string salesOrderNum = retunTblItem["SALES_ORDER_NO"].ToString();

                //Update PartsOrder Object with SalesOrder Number and other Reported Incident Info
                _rnConnectService.UpdatePartsOrder(_lineRecords, salesOrderNum, numOfVIN, _partsHeaderRecord, shipToSiteID, partOdrInstrID);

                //Clear out some of Reported Incident field that were specific for this order only for Retrofit case only
                if (partOdrInstrID > 0)
                {
                    IRecordContext recordContext = ReportCommandAddIn._globalContext.AutomationContext.CurrentWorkspace;
                    recordContext.TriggerNamedEvent("clearPartsOrderFields");
                }
                //}
            }
            else
            {
                //Destroy the partsorder objects
                _rnConnectService.DestroyPartsOrder(_lineRecords);
                ReportCommandAddIn.form.Hide();
                MessageBox.Show(retunTblItem["DESCRIPTION"].ToString());
            }
        }
예제 #3
0
        void SaveRepairOrderToServer(decimal sr_id)
        {
            string logMessage = "Create/Update RO.";
            string logNote    = "";

            _log.DebugLog(incidentId: _logIncidentId, logMessage: logMessage, logNote: logNote);

            string      ro_saved_num;
            RepairOrder ro = null;

            ro = new RepairOrder();

            ro.ServiceRequestID = sr_id;
            if (_repairOrderControl.isAddingRO == true)
            {
                //Create Additional RO
                ro.Quantity             = Convert.ToDecimal(_repairOrderControl.InputQuantity);
                ro.UnitOfMeasure        = _repairOrderControl.SelectedUnit;
                ro.InventoryItemID      = this.currentInventoryItemID;
                ro.SerialNumber         = this.current_serial_num;
                ro.ApprovalRequired     = _repairOrderControl.SelectedApprovalRequired;
                ro.Currency             = "USD";
                ro.ResourceID           = _ebsDefaultSrOwnerId;
                ro.ProblemDescription   = _repairOrderControl.InputProblem;
                ro.HasValidSerialNumber = "Y";
            }
            else if (_repairOrderControl.isChangingRO == true)
            {
                //Edit RO
                ro.RepairNumber         = _repairOrderControl.changingRONum;
                ro.RepairStatus         = selected_status;
                ro.RepairStatusID       = selected_status_id;
                ro.StoredRepairStatus   = stored_status;
                ro.StoredRepairStatusID = stored_status_id;
            }


            try
            {
                if (_repairOrderControl.isChangingRO == true)
                {
                    logMessage = "Ready to update Repair Order. SR ID = " + sr_id + "; RO Number = " + ro.RepairLineID;
                    logNote    = "";
                    _log.DebugLog(incidentId: _logIncidentId, logMessage: logMessage, logNote: logNote);
                    ro_saved_num = ro.Update(_logIncidentId, 0);
                }
                else
                {
                    logMessage = "Ready to update Repair Order. RO Number = " + ro.RepairLineID;
                    logNote    = "";
                    _log.DebugLog(incidentId: _logIncidentId, logMessage: logMessage, logNote: logNote);

                    ro_saved_num = ro.Create(_logIncidentId, 0);
                }
            }
            catch (Exception ex)
            {
                string message = ex.Message;
                MessageBox.Show(message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);

                logMessage = "Error in creating/updating Repair Order.Error Message: " + ex.Message;
                logNote    = "";
                _log.ErrorLog(incidentId: _logIncidentId, logMessage: logMessage, logNote: logNote);

                return;
            }

            if (ro_saved_num == "-1")
            {
                //Cannot change status between statuses
                string message = ro.ErrorMessage;
                MessageBox.Show(message, "Notice", MessageBoxButtons.OK, MessageBoxIcon.Information);

                logMessage = "Error in creating/updating RepairOrder. " + message;
                _log.ErrorLog(incidentId: _logIncidentId, logMessage: logMessage);
                return;
            }
            else if (String.IsNullOrEmpty(ro_saved_num))
            {
                string message = "There has been an error communicating with EBS. Please check log for detail.";
                MessageBox.Show(message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);

                logMessage = "Error in creating/updating RepairOrder. Response's error message: " + ro.ErrorMessage;
                logNote    = "";
                _log.ErrorLog(incidentId: _logIncidentId, logMessage: logMessage, logNote: logNote);
                return;
            }
            else
            {
                // Save successfully
                logMessage = "Creating/updating Repair Order successfully. RO Num = " + ro.RepairLineID;
                logNote    = "";
                _log.DebugLog(incidentId: _logIncidentId, logMessage: logMessage, logNote: logNote);

                _repairOrderControl.previousRONum = ro_saved_num;

                if (!isEnabledEditing)
                {
                    string       message = "Repair Order has been created in EBS. Do you want to refresh current Repair Order List?";
                    DialogResult result  = MessageBox.Show(message, "Notice", MessageBoxButtons.YesNo, MessageBoxIcon.Information);
                    if (result == DialogResult.Yes)
                    {
                        _recordContext.TriggerNamedEvent("CancelCreatingRO");
                        _recordContext.ExecuteEditorCommand(RightNow.AddIns.Common.EditorCommand.Refresh);
                    }
                }
            }
        }