Пример #1
0
        /// <summary>
        /// Method responsible for communicates to "AccessTrackParkingTicketService.TimeService" to retrieve parking tivket details.
        /// </summary>
        /// <param name="ean"></param>
        /// <returns></returns>
        ///
        private ParkingTicketResult GetTicketInformation(string ean)
        {
            ParkingTicketResult parkingTicketResult = new ParkingTicketResult();

            AccessTrackParkingTicketService.TimeService accessTrackParkingTicketService = new AccessTrackParkingTicketService.TimeService();
            //IN009279 Parking ticket Service - implementar Cartão cliente
            if (ean.Length == 13)
            {
                try
                {
                    //accessTrackParkingTicketService.Url = System.Configuration.ConfigurationManager.AppSettings["wsParkingURL"].ToString();
                    //accessTrackParkingTicketService.Url = "http://localhost/wstimetrack/service.asmx".ToString();
                    _log.Debug("ParkingTicket URL([ " + accessTrackParkingTicketService.Url + " ]) :: ");
                    System.Data.DataTable accessTrackParkingTicketServiceResult = accessTrackParkingTicketService.getTicketInformation(ean);

                    /* Business rules defined that only one ticket will be created at a time */
                    foreach (System.Data.DataRow ticketInformationItem in accessTrackParkingTicketServiceResult.Rows)
                    {
                        parkingTicketResult     = ExtractTicketInformation(ticketInformationItem);
                        parkingTicketResult.Ean = ean;
                    }
                }
                catch (WebException ex)
                {
                    _log.Error("ParkingTicketResult GetTicketInformation([ " + ean + " ]) :: " + ex.Message, ex);
                    GlobalApp.WindowPos.TicketList.WsNotFound();
                    parkingTicketResult = null;
                    // throw ex;
                }
            }
            else
            {
                //IN009279
                if (!accessTrackParkingTicketService.getCardInformation(ean))
                {
                    DateTime localDate = DateTime.Now;
                    string   dateNow   = localDate.ToString();
                    _log.Debug("ParkingTicket URL([ " + accessTrackParkingTicketService.Url + " ]) :: ");
                    accessTrackParkingTicketService.addInCard(ean, dateNow);
                }
                string sql          = "SELECT Price1 FROM[logicposdb].[dbo].[fin_article] where Oid = '32829702-33fa-48d5-917c-4c1db8720777'";
                var    getCardPrice = GlobalFramework.SessionXpo.ExecuteScalar(sql);
                parkingTicketResult.Price = Convert.ToInt32(getCardPrice);
                parkingTicketResult.Ean   = ean;
                string sql2 = "SELECT DefaultQuantity FROM[logicposdb].[dbo].[fin_article] where Oid = '32829702-33fa-48d5-917c-4c1db8720777'";
                var    getDefaultQuantitysql = GlobalFramework.SessionXpo.ExecuteScalar(sql2);

                int quantity = Convert.ToInt32(getDefaultQuantitysql);
                parkingTicketResult.Quantity = quantity.ToString();
                parkingTicketResult.Quantity = string.Format("{0}", quantity.ToString());
            }

            return(parkingTicketResult);
        }
Пример #2
0
        //:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
        //ProcessFinanceDocument
        //Use: DocumentFinanceMaster resultDocument = FrameworkCalls.ProcessFinanceDocument(SourceWindow, processFinanceDocumentParameter);

        public static fin_documentfinancemaster PersistFinanceDocument(Window pSourceWindow, ProcessFinanceDocumentParameter pProcessFinanceDocumentParameter)
        {
            bool printDocument = true;
            fin_documentfinancemaster result = null;

            try
            {
                //Protection to Check if SystemDate is < Last DocumentDate
                ResponseType responseType = Utils.ShowMessageTouchCheckIfFinanceDocumentHasValidDocumentDate(pSourceWindow, pProcessFinanceDocumentParameter);
                if (responseType != ResponseType.Yes)
                {
                    return(result);
                }

                fin_documentfinancemaster documentFinanceMaster = ProcessFinanceDocument.PersistFinanceDocument(pProcessFinanceDocumentParameter, true);
                fin_documentfinancedetailorderreference fin_documentfinancedetailorderreference = new fin_documentfinancedetailorderreference();
                if (documentFinanceMaster != null)
                {
                    //ATWS : SendDocumentToATWSDialog
                    if (SendDocumentToATWSEnabled(documentFinanceMaster))
                    {
                        SendDocumentToATWSDialog(pSourceWindow, documentFinanceMaster);
                    }
                    /* TK013134 - Parking Ticket Module */
                    foreach (var item in GlobalFramework.PendentPayedParkingTickets)
                    {
                        _log.Debug("[PARKING TICKET] Informing Access.Track that the parking ticket has been payed...");
                        AccessTrackParkingTicketService.TimeService accessTrackParkingTicketService = new AccessTrackParkingTicketService.TimeService();

                        bool isTicketPayedInformed = accessTrackParkingTicketService.payTicket(item.Key);


                        _log.Debug($"[PARKING TICKET] Barcode '{item.Key}' sent to Access.Track: Guid '{item.Value}'");

                        if (!isTicketPayedInformed)
                        {
                            _log.Debug($"[PARKING TICKET] Barcode '{item.Key}' not identified by Access.Track: Guid '{item.Value}'");
                        }
                        else if (accessTrackParkingTicketService.isTicketValid(item.Key))
                        {
                            _log.Debug($"[PARKING TICKET] Barcode '{item.Key}' payed successfully");
                        }
                        else
                        {
                            _log.Error($"[PARKING TICKET] Barcode '{item.Key}' payment has not been recognized by Access.Track!");
                        }
                    }
                    //IN009279 Parking ticket Service - implementar Cartão cliente
                    int i = 0;
                    foreach (var item in GlobalFramework.PendentPayedParkingCards)
                    {
                        _log.Debug("[PARKING TICKET] Informing Access.Track that the parking card has been payed...");
                        AccessTrackParkingTicketService.TimeService accessTrackParkingTicketService = new AccessTrackParkingTicketService.TimeService();

                        //Number of months paid is passed by document notes
                        string sql               = string.Format("SELECT Notes FROM fin_documentfinancemaster where SourceOrderMain = '{0}'", item.Value);
                        var    sqlResult         = GlobalFramework.SessionXpo.ExecuteScalar(sql);
                        string sqlResultquantity = sqlResult.ToString();

                        string[] quantity   = sqlResultquantity.Trim().Split(' ');
                        int      splitCount = quantity.Length;

                        int[] number = new int[splitCount];
                        if (quantity[i].Contains(","))
                        {
                            number[i] = int.Parse(quantity[i].Substring(0, quantity[i].IndexOf(','))); //Contains decimal separator
                        }
                        else
                        {
                            number[i] = int.Parse(quantity[i]); //Contains only numbers, no decimal separator.
                        }
                        DateTime localDate = DateTime.Now;
                        DateTime endDate   = localDate.AddMonths(Convert.ToInt32(number[i]));
                        string   dateNow   = localDate.ToString();
                        string   dateEnd   = endDate.ToString();
                        accessTrackParkingTicketService.payCard(item.Key, dateNow, dateEnd);
                        i++;
                    }//IN009279 ENDS

                    //Always Send back the Valid Document
                    result = documentFinanceMaster;


                    if (documentFinanceMaster.DocumentType.PrintRequestConfirmation)
                    {
                        responseType = Utils.ShowMessageTouch(
                            pSourceWindow,
                            DialogFlags.Modal,
                            MessageType.Question,
                            ButtonsType.YesNo,
                            resources.CustomResources.GetCustomResources(GlobalFramework.Settings["customCultureResourceDefinition"], "window_title_dialog_document_finance"),
                            resources.CustomResources.GetCustomResources(GlobalFramework.Settings["customCultureResourceDefinition"], "dialog_message_request_print_document_confirmation")
                            );

                        if (responseType == ResponseType.No)
                        {
                            printDocument = false;
                        }
                    }

                    //Print Document
                    if (printDocument)
                    {
                        PrintFinanceDocument(pSourceWindow, documentFinanceMaster);
                    }
                }
            }
            catch (Exception ex)
            {
                string errorMessage = string.Empty;

                switch (ex.Message)
                {
                case "ERROR_MISSING_SERIE":
                    errorMessage = string.Format(resources.CustomResources.GetCustomResources(GlobalFramework.Settings["customCultureResourceDefinition"], "dialog_message_error_creating_financial_document"), resources.CustomResources.GetCustomResources(GlobalFramework.Settings["customCultureResourceDefinition"], "dialog_message_error_creating_financial_document_missing_series"));
                    break;

                case "ERROR_INVALID_DOCUMENT_NUMBER":
                    errorMessage = string.Format(resources.CustomResources.GetCustomResources(GlobalFramework.Settings["customCultureResourceDefinition"], "dialog_message_error_creating_financial_document"), resources.CustomResources.GetCustomResources(GlobalFramework.Settings["customCultureResourceDefinition"], "dialog_message_error_creating_financial_document_invalid_documentnumber"));
                    break;

                case "ERROR_COMMIT_FINANCE_DOCUMENT":
                    errorMessage = string.Format(resources.CustomResources.GetCustomResources(GlobalFramework.Settings["customCultureResourceDefinition"], "dialog_message_error_creating_financial_document"), resources.CustomResources.GetCustomResources(GlobalFramework.Settings["customCultureResourceDefinition"], "dialog_message_error_creating_financial_document_commit_session"));
                    break;

                //TODO: NEW CLASS FinanceDocumentValidate : IMPLEMENT HERE THE RESULT EXCEPTION FOR VALIDATE_SIMPLIFIED_INVOICE
                default:
                    errorMessage = string.Format(resources.CustomResources.GetCustomResources(GlobalFramework.Settings["customCultureResourceDefinition"], "dialog_message_error_creating_financial_document"), ex.Message);
                    break;
                }
                Utils.ShowMessageTouch(
                    pSourceWindow,
                    DialogFlags.Modal,
                    _sizeDefaultWindowSize,
                    MessageType.Error,
                    ButtonsType.Close,
                    resources.CustomResources.GetCustomResources(GlobalFramework.Settings["customCultureResourceDefinition"], "global_error"),
                    errorMessage
                    );
            }

            return(result);
        }