Ejemplo n.º 1
0
        /// <summary>
        /// Retrieve invoice information of specific invoice no.
        /// </summary>
        /// <param name="param">invoice no.</param>
        /// <returns></returns>
        public ActionResult ICS050_GetInvoice(ICS050_ScreenParameter param)
        {
            ObjectResultData res = new ObjectResultData();

            res.MessageType = MessageModel.MESSAGE_TYPE.WARNING;
            doInvoice doInvoice;

            try
            {
                ValidatorUtil validator = new ValidatorUtil();

                // Check required field.
                if (CommonUtil.IsNullOrEmpty(param) || string.IsNullOrEmpty(param.InvoiceNo))
                {
                    validator.AddErrorMessage(MessageUtil.MODULE_INCOME, "ICS050"
                                              , MessageUtil.MODULE_COMMON, MessageUtil.MessageList.MSG0007
                                              , "InvoiceNo", "lblInvoiceNo", "InvoiceNo");
                    ValidatorUtil.BuildErrorMessage(res, validator, null);
                    return(Json(res));
                }

                //Get Invoice Data
                var billingHandler = ServiceContainer.GetService <IBillingHandler>() as IBillingHandler;
                doInvoice = billingHandler.GetInvoice(param.InvoiceNo);
                if (doInvoice == null)
                {
                    validator.AddErrorMessage(MessageUtil.MODULE_INCOME, "ICS050"
                                              , MessageUtil.MODULE_INCOME, MessageUtil.MessageList.MSG7003
                                              , "InvoiceNo", "lblInvoiceNo", "InvoiceNo");
                    ValidatorUtil.BuildErrorMessage(res, validator, null);
                    res.MessageType = MessageModel.MESSAGE_TYPE.INFORMATION;
                    return(Json(res));
                }

                //Validate business
                ICS050_ValidateInvoiceBusiness(doInvoice, validator);
                ValidatorUtil.BuildErrorMessage(res, validator, null);
                if (res.IsError)
                {
                    return(Json(res));
                }

                //Pass
                res.ResultData = doInvoice;
                return(Json(res));
            }
            catch (Exception ex)
            {
                res             = new ObjectResultData();
                res.MessageType = MessageModel.MESSAGE_TYPE.INFORMATION;
                res.AddErrorMessage(ex);
                return(Json(res));
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Generate taxinvoice/receipt pdf report
        /// </summary>
        /// <returns></returns>
        public ActionResult ICS050_DisplayReport()
        {
            ICS050_ScreenParameter screenSession = GetScreenObject <ICS050_ScreenParameter>();

            if (screenSession != null && !string.IsNullOrEmpty(screenSession.PDFFilePath))
            {
                IDocumentHandler handlerDocument = ServiceContainer.GetService <IDocumentHandler>() as IDocumentHandler;
                Stream           filestream      = handlerDocument.GetDocumentReportFileStream(screenSession.PDFFilePath);
                return(File(filestream, "application/pdf"));
            }
            else
            {
                //Do nothing
                ObjectResultData res = new ObjectResultData();
                res.MessageType = MessageModel.MESSAGE_TYPE.WARNING;
                return(Json(res));
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Check screen authority and permission
        /// </summary>
        /// <param name="param"></param>
        /// <returns></returns>
        public ActionResult ICS050_Authority(ICS050_ScreenParameter param)
        {
            ObjectResultData res = new ObjectResultData();

            try
            {
                if (IsSuspend(res))
                {
                    return(Json(res));
                }

                // Check permission
                if (!ICS050_IsAllowOperate(res))
                {
                    return(Json(res));
                }
            }
            catch (Exception ex)
            {
                res.AddErrorMessage(ex);
            }

            return(InitialScreenEnvironment <ICS050_ScreenParameter>("ICS050", param, res));
        }
Ejemplo n.º 4
0
        public ActionResult ICS050()
        {
            ICS050_ScreenParameter param = GetScreenObject <ICS050_ScreenParameter>();

            return(View());
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Event when click confirm button, this function will force issued taxinvoice, receipt information of specific invoice information to the system.
        /// </summary>
        /// <param name="param">invoice information</param>
        /// <returns></returns>
        public ActionResult ICS050_cmdConfirm(ICS050_ScreenParameter param)
        {
            ObjectResultData res = new ObjectResultData();

            res.MessageType = MessageModel.MESSAGE_TYPE.INFORMATION;
            doInvoice doInvoice;

            try
            {
                if (IsSuspend(res))
                {
                    return(Json(res));
                }

                if (!ICS050_IsAllowOperate(res))
                {
                    return(Json(res));
                }

                ValidatorUtil validator = new ValidatorUtil();


                //Validate Model
                ValidatorUtil.BuildErrorMessage(res, this, new object[] { param });
                if (res.IsError)
                {
                    return(Json(res));
                }


                //Get Invoice Data
                var billingHandler = ServiceContainer.GetService <IBillingHandler>() as IBillingHandler;
                doInvoice = billingHandler.GetInvoice(param.InvoiceNo);
                if (doInvoice == null)
                {
                    validator.AddErrorMessage(MessageUtil.MODULE_INCOME, "ICS050"
                                              , MessageUtil.MODULE_INCOME, MessageUtil.MessageList.MSG7003
                                              , "InvoiceNo", "lblInvoiceNo", "InvoiceNo");
                    ValidatorUtil.BuildErrorMessage(res, validator, null);
                    res.MessageType = MessageModel.MESSAGE_TYPE.INFORMATION;
                    return(Json(res));
                }

                //Validate business
                ICS050_ValidateInvoiceBusiness(doInvoice, validator);
                ValidatorUtil.BuildErrorMessage(res, validator, null);
                if (res.IsError)
                {
                    return(Json(res));
                }


                //Issued TaxInvoice , Receipt
                using (TransactionScope scope = new TransactionScope())
                {
                    try
                    {
                        //bool isIssuedTaxInvoice = billingHandler.CheckTaxInvoiceIssued(doInvoice);
                        bool   isIssuedTaxInvoice = billingHandler.CheckInvoiceIssuedTaxInvoice(doInvoice.InvoiceNo, doInvoice.InvoiceOCC);
                        string pdfFilePath;

                        if (isIssuedTaxInvoice == false)
                        {
                            //Issue tax invoice, receipt
                            pdfFilePath = ICS050_IssueTaxInvoiceReceipt(doInvoice, param.IssueInvoiceDate.Value, validator);
                        }
                        else
                        {
                            //Issue only receipt
                            pdfFilePath = ICS050_IssueReceipt(doInvoice, param.IssueInvoiceDate.Value, validator);
                        }

                        if (pdfFilePath != null)
                        {
                            //Success
                            scope.Complete();

                            // Commeny by Jirawat Jannet @2016-10-17
                            ICS050_ScreenParameter screenSession = GetScreenObject <ICS050_ScreenParameter>();
                            screenSession.PDFFilePath = pdfFilePath;
                            res.ResultData            = "1";
                            return(Json(res));
                            //res.ResultData = "1"; // add by Jirawat Jannet @ 2016-10-17
                            //return Json(res);
                        }

                        //All incompleted cases
                        scope.Dispose();
                    }
                    catch (Exception ex)
                    {
                        scope.Dispose();
                        throw ex;
                    }
                }
            }
            catch (Exception ex)
            {
                res.MessageType = MessageModel.MESSAGE_TYPE.INFORMATION;
                res.AddErrorMessage(ex);
            }
            return(Json(res));
        }
Ejemplo n.º 6
0
        /// <summary>
        /// Event when click register button
        /// </summary>
        /// <param name="param">invoice information</param>
        /// <returns></returns>
        public ActionResult ICS050_cmdRegister(ICS050_ScreenParameter param)
        {
            ICS050_ScreenParameter session = GetScreenObject <ICS050_ScreenParameter>();
            ObjectResultData       res     = new ObjectResultData();

            res.MessageType = MessageModel.MESSAGE_TYPE.WARNING;
            doInvoice doInvoice;

            try
            {
                if (IsSuspend(res))
                {
                    return(Json(res));
                }

                if (!ICS050_IsAllowOperate(res))
                {
                    return(Json(res));
                }

                ValidatorUtil validator = new ValidatorUtil();

                //Validate Model
                ValidatorUtil.BuildErrorMessage(res, this, new object[] { param });
                if (res.IsError)
                {
                    return(Json(res));
                }


                //Get Invoice Data
                var billingHandler = ServiceContainer.GetService <IBillingHandler>() as IBillingHandler;
                doInvoice = billingHandler.GetInvoice(param.InvoiceNo);
                if (doInvoice == null)
                {
                    validator.AddErrorMessage(MessageUtil.MODULE_INCOME, "ICS050"
                                              , MessageUtil.MODULE_INCOME, MessageUtil.MessageList.MSG7003
                                              , "InvoiceNo", "lblInvoiceNo", "InvoiceNo");
                    ValidatorUtil.BuildErrorMessage(res, validator, null);
                    res.MessageType = MessageModel.MESSAGE_TYPE.INFORMATION;
                    return(Json(res));
                }

                //Validate business
                ICS050_ValidateInvoiceBusiness(doInvoice, validator);
                ValidatorUtil.BuildErrorMessage(res, validator, null);
                if (res.IsError)
                {
                    return(Json(res));
                }



                //Result flag  1 = Success
                res.ResultData = "1";
            }
            catch (Exception ex)
            {
                res.MessageType = MessageModel.MESSAGE_TYPE.INFORMATION;
                res.AddErrorMessage(ex);
            }
            return(Json(res));
        }