public async Task<TransactionExportResponse> GetNextOrder(OrderType orderType = OrderType.OutletToDistributor, DocumentStatus documentStatus = DocumentStatus.Closed)
        {
            HttpClient client = MiddlewareHttpClient;

            client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
            try
            {
                string urlSuffix = client.BaseAddress + "api/new/Integration/GetNextOrderToExport?username={0}&password={1}&orderType={2}&documentStatus={3}";

                string url = string.Format(urlSuffix, _userName,_otherUtilities.MD5Hash(_password), orderType, documentStatus);

                var response = client.GetAsync(url).Result;
                TransactionExportResponse _response = response.Content.ReadAsAsync<TransactionExportResponse>().Result;
                if (_response == null)
                {
                    return new TransactionExportResponse() { Success = false };
                }


                return _response;
            }
            catch (Exception ex)
            {
                return new TransactionExportResponse { Info = ex.Message };
            }
        }
示例#2
0
        public IPagedDocumentList<MainOrderSummary> PagedPurchaseDocumentList(int page, int pageSize, DateTime startdate,
                                                                              DateTime endDate,
                                                                              DocumentStatus? documentStatus,
                                                                              Guid? distributrId = null,
                                                                              string search = "")
        {
            IQueryable<tblDocument> orders =
                _GetAll(DocumentType.Order, startdate, endDate).Where(s => s.OrderParentId == s.Id);
            orders = orders.Where(s => s.OrderOrderTypeId == (int) OrderType.DistributorToProducer);
            if (!string.IsNullOrEmpty(search))
                orders = orders.Where(p => p.DocumentReference.ToLower().Contains(search.ToLower()));

            if (distributrId.HasValue && distributrId != Guid.Empty)
            {
                orders =
                    orders.Where(
                        s =>
                        s.DocumentRecipientCostCentre == distributrId.Value ||
                        s.DocumentIssuerCostCentreId == distributrId.Value);
            }
            if (documentStatus.HasValue && documentStatus != 0)
            {
                orders = orders.Where(s => s.DocumentStatusId == (int) documentStatus);
            }

            PagedDocumentList<MainOrderSummary> pages;
            pages = new PagedDocumentList<MainOrderSummary>(orders.Count(), page, pageSize);
            int skip = Skip(page, pageSize);
            var data = orders.OrderByDescending(d => d.IM_DateCreated).Skip(skip).Take(pageSize).ToList();
            pages.AddRange(data.Select(s => MapSummary(s)).ToList());
            return pages;
        }
        public OrderExportDocument GetDocument(OrderType orderType, DocumentStatus status)
        {
            var nextId = GetNextOrderId(orderType, status);
            if (nextId != Guid.Empty)
            {
                var doc = _orderRepository.GetById(nextId);
                var exportdoc = new OrderExportDocument();
                exportdoc.Id = doc.Id;

                exportdoc.ExternalRef = doc.ExternalDocumentReference;
                exportdoc.OrderDate = doc.DocumentDateIssued;
                exportdoc.OrderDueDate = doc.DateRequired;
                exportdoc.OrderRef = doc.DocumentReference;
                exportdoc.OutletCode = doc.IssuedOnBehalfOf.CostCentreCode;
                
                exportdoc.ShipToAddress = doc.ShipToAddress; 
                exportdoc.OutletName = doc.IssuedOnBehalfOf.Name;
                exportdoc.Note = doc.Note;
                exportdoc.RouteName = GetOnBehalfOfCCRouteName(doc.Id);//GetOrderReference(nextId, orderType);
                exportdoc.TotalNet = doc.TotalNet;
                exportdoc.TotalVat = doc.TotalVat;
                exportdoc.TotalDiscount = doc.TotalDiscount;
                exportdoc.TotalGross = doc.TotalGross;

                if (doc.DocumentIssuerCostCentre is DistributorSalesman)
                {
                    exportdoc.SalesmanCode = doc.DocumentIssuerCostCentre.CostCentreCode;
                    exportdoc.SalesmanName = doc.DocumentIssuerCostCentre.Name;
                }
                   
                else
                {
                    exportdoc.SalesmanCode = doc.DocumentRecipientCostCentre.CostCentreCode;
                    exportdoc.SalesmanName = doc.DocumentRecipientCostCentre.Name;
                }
                    
                foreach (var item in doc.ItemSummary)
                {
                    var exportItem = new OrderExportDocumentItem();
                    exportItem.ProductCode = item.Product.ProductCode;
                    exportItem.Quantity = item.Qty;
                    exportItem.Price = item.Value;
                    exportItem.VatClass = item.Product.VATClass != null ? item.Product.VATClass.Name : "";
                    exportItem.VatPerUnit = item.VatValue;
                    exportItem.ProductDiscount = item.ProductDiscount ;

                    exportItem.LineItemTotalNet = item.TotalNet;
                    exportItem.LineItemTotalVat = item.TotalVat;
                    exportItem.LineItemTotalGross = item.TotalGross;
                   exportdoc.LineItems.Add(exportItem);
                        
                }
                return exportdoc;
            }
            return null;

        }
示例#4
0
 public bool ChangeStatus(Guid documentId, DocumentStatus status)
 {
     return false;
     Invoice invoice = GetById(documentId);
     if (invoice == null)
         return false;
     invoice.Status = status;
     //Save(invoice);
     return true;
 }
示例#5
0
        //
        // GET: /Admin/DocumentStatus/Edit/5

        public ActionResult Edit(int id)
        {
            DocumentStatus model = db.DocumentStatuses.Find(id);

            if (model.active == false)
            {
                ErrorModel errModel = new ErrorModel(2);
                errModel.ErrorMessage  = string.Format("You cannot view {0} as it has been deactivated, please raise a help desk call to re-activate it.", model.Detail);
                TempData["ErrorModel"] = errModel;
                return(RedirectToAction("IndexByModel", "Error", new { area = "", model = errModel ?? null }));
            }
            return(View(model));
        }
示例#6
0
        public void RejectDocument(DocumentStatus status)
        {
            switch (status)
            {
            case DocumentStatus.Draft:
                // ...
                break;

            case DocumentStatus.Lodged:
                // ...
                break;
            }
        }
 public bool UpdateDocumentStatus(DocumentStatus doc)
 {
     try
     {
         _dbContext.Entry(doc).State = EntityState.Modified;
         Save();
         return(true);
     }
     catch (Exception)
     {
         return(false);
     }
 }
示例#8
0
        public DocumentStatus IsCostCodeDataPresentForJobInNAV(string jobId)
        {
            if (string.IsNullOrEmpty(jobId))
            {
                return(new DocumentStatus()
                {
                    IsAttachmentPresent = false, IsPODPresent = false
                });
            }

            List <long>    selectedJobId  = jobId.Split(',').Select(Int64.Parse).ToList();
            List <Task>    tasks          = new List <Task>();
            DocumentStatus documentStatus = new DocumentStatus()
            {
                IsAttachmentPresent = false, IsPODPresent = false
            };
            NavPurchaseOrderPostedInvoiceResponse navPurchaseOrderPostedInvoiceResponse = CommonCommands.GetCachedNavPurchaseOrderValues();
            NavPurchaseOrderItemResponse          navPurchaseOrderItemResponse          = CommonCommands.GetCachedNavPurchaseOrderItemValues();

            if (navPurchaseOrderPostedInvoiceResponse == null || (navPurchaseOrderPostedInvoiceResponse != null && navPurchaseOrderPostedInvoiceResponse.NavPurchaseOrder == null) || (navPurchaseOrderPostedInvoiceResponse != null && navPurchaseOrderPostedInvoiceResponse.NavPurchaseOrder != null && navPurchaseOrderPostedInvoiceResponse.NavPurchaseOrder.Count == 0))
            {
                return(documentStatus);
            }
            else if (navPurchaseOrderItemResponse == null || (navPurchaseOrderItemResponse != null && navPurchaseOrderItemResponse.NavPurchaseOrderItem == null) || (navPurchaseOrderItemResponse != null && navPurchaseOrderItemResponse.NavPurchaseOrderItem != null && navPurchaseOrderItemResponse.NavPurchaseOrderItem.Count == 0))
            {
                return(documentStatus);
            }

            foreach (var currentJob in selectedJobId)
            {
                tasks.Add(Task.Factory.StartNew(() =>
                {
                    var currentNavSalesOrder = navPurchaseOrderPostedInvoiceResponse.NavPurchaseOrder.FirstOrDefault(x => x.M4PL_Job_ID.ToLong() == currentJob);
                    if (currentNavSalesOrder != null && !string.IsNullOrEmpty(currentNavSalesOrder.No))
                    {
                        var currentSalesLineItem = navPurchaseOrderItemResponse.NavPurchaseOrderItem.Where(x => x.Document_No.Equals(currentNavSalesOrder.No, StringComparison.OrdinalIgnoreCase));
                        if (currentSalesLineItem.Any() && currentSalesLineItem.Count() > 0)
                        {
                            documentStatus.IsAttachmentPresent = true;
                        }
                    }
                }));
            }

            if (tasks.Count > 0)
            {
                Task.WaitAll(tasks.ToArray());
            }

            return(documentStatus);
        }
示例#9
0
 public void ApproveDocument(DocumentStatus status)
 {
     if (status == DocumentStatus.Draft)
     {
         // ...
     }
     else
     {
         if (status == DocumentStatus.Lodged)
         {
             // ...
         }
     }
 }
示例#10
0
        public void Delete(DocumentStatus model)
        {
            int result = 0;

            try
            {
                db.Entry(model).State = EntityState.Deleted;
                result = db.SaveChanges();
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }
示例#11
0
        public MoveResponse MoveDown(MoveRequest request)
        {
            MoveResponse response = new MoveResponse();

            // Current Agency is the Request
            DocumentStatus currentDocumentStatus = new DocumentStatus();

            currentDocumentStatus = _documentStatusRepository.FindBy(request.ID);

            // Find the Previews Agency
            DocumentStatus nextDocumentStatus = new DocumentStatus();

            try
            {
                nextDocumentStatus = _documentStatusRepository.FindAll()
                                     .Where(s => s.SortOrder > currentDocumentStatus.SortOrder)
                                     .OrderBy(s => s.SortOrder)
                                     .FirstOrDefault();
            }
            catch (Exception ex)
            {
            }

            if (currentDocumentStatus != null && nextDocumentStatus != null)
            {
                try
                {
                    // replacing SortOrders
                    int current  = (int)currentDocumentStatus.SortOrder;
                    int previews = (int)nextDocumentStatus.SortOrder;

                    currentDocumentStatus.SortOrder = previews;
                    nextDocumentStatus.SortOrder    = current;

                    _documentStatusRepository.Save(currentDocumentStatus);
                    _documentStatusRepository.Save(nextDocumentStatus);
                    _uow.Commit();
                }
                catch (Exception ex)
                {
                    response.ErrorMessages.Add(ex.Message);
                    return(response);
                }

                ////response.success = true;
            }

            return(response);
        }
示例#12
0
        public DocumentStatus IsCostCodeDataPresentForJob(List <long> selectedJobId)
        {
            DocumentStatus documentStatus = new DocumentStatus()
            {
                IsAttachmentPresent = false, IsPODPresent = false
            };
            var costCodeData = _commands.GetMultipleJobCostReportData(ActiveUser, M4PLBusinessConfiguration.ElectroluxCustomerId.ToLong(), selectedJobId);

            if (costCodeData != null && costCodeData.Count > 0)
            {
                documentStatus.IsAttachmentPresent = true;
            }

            return(documentStatus);
        }
示例#13
0
        public void SetStatus(DocumentStatus status)
        {
            Status = status;

            switch (Status)
            {
            case DocumentStatus.Refused:
                DomainEvents.Add(new DocumentRefusedEvent(Id));
                break;

            case DocumentStatus.OutOfDate:
                DomainEvents.Add(new DocumentOutdatedEvent(Id));
                break;
            }
        }
示例#14
0
        public void ApproveDocument(DocumentStatus status)
        {
            //these numbers are "magic numbers" reader does not know what these numbers mean
            //could use comments but there are a better ways

            //if (status == 1)
            // Console.WriteLine("do something");
            //else if (status == 2)
            // Console.WriteLine("do something else");

            ///////////method 1///////////////////////////////////////////////////////////

            //refactor the magic numbers by introducing var
            //introduce variable

            //const int draft = 1;
            //if (status == draft)
            //Console.WriteLine("do something");
            //else
            //{
            //const int lodged = 2;
            //if (status == lodged)
            //Console.WriteLine("do something else");
            //}
            //this method of introducing variables is good when there is only one method where these numbers have meaning

            //if other methods use these magic numbers
            //use enum

            ///////////method 2////////////////////////////////////////////////////////////


            //introduce fields to be enum,
            //then extract properties into a class
            //make public
            //turn class to enum
            //remove semicolons, just use comma
            //then change signature of method using refactor

            if (status == DocumentStatus.Draft)
            {
                Console.WriteLine("do something");
            }
            else if (status == DocumentStatus.Lodged)
            {
                Console.WriteLine("do something else");
            }
        }
示例#15
0
        public DocumentStatus GetDocumentStatusByJobId(List <long> selectedJobId)
        {
            DocumentStatus documentStatus = new DocumentStatus()
            {
                IsAttachmentPresent = false, IsPODPresent = false
            };
            List <Entities.Attachment> attachments = _commands.GetAttachmentsByMultipleJobId(ActiveUser, selectedJobId);

            if (attachments != null && attachments.Count > 0)
            {
                documentStatus.IsAttachmentPresent = true;
                documentStatus.IsPODPresent        = attachments.Where(x => x.DocumentType.Equals("POD", StringComparison.OrdinalIgnoreCase)).Any();
            }

            return(documentStatus);
        }
示例#16
0
 public StockIssueNote(Guid id,
     string documentReference,
     CostCentre documentIssuerCostCentre,
     int documentIssueCostCentreApplicationId,
     User documentIssuerUser,
     DateTime documentDateIssued,
     CostCentre documentRecipientCostCentre,
     DocumentStatus status,
     List<StockIssueNoteLineItem> lineItems
     )
     : base(id, documentReference, documentIssuerCostCentre, documentIssueCostCentreApplicationId, documentIssuerUser, documentDateIssued,
     documentRecipientCostCentre, status)
 {
     _lineItems = lineItems;
     this.DocumentType = DocumentType.StockIssueNote;
 }
示例#17
0
        public async Task <bool> ChangeStatus(int documentId, int appUserId, DocumentStatus status, string message)
        {
            try
            {
                var document = await docRepo.GetById(documentId);

                var user = await userRepo.GetById(appUserId);

                document.ChangeStatus(user, status, message);
                await docRepo.Update(document);
            }
            catch (Exception e)
            {
                return(false);
            }
            return(true);
        }
示例#18
0
        /// <summary>
        /// Converts the value of the specified <see cref="DocumentStatus"/> to its equivalent <see cref="String"/> representation.
        /// </summary>
        /// <param name="status">A document status.</param>
        /// <returns>The <see cref="String"/> equivalent of the value of <paramref name="status"/>.</returns>
        public static string ToString(DocumentStatus status)
        {
            switch (status)
            {
            case DocumentStatus.Accepted: return("Accepted");

            case DocumentStatus.Disregarded: return("No Processing Required");

            case DocumentStatus.OnHold: return("On-Hold");

            case DocumentStatus.Received: return("Processing");

            case DocumentStatus.Rejected: return("Rejected");

            default: return(string.Empty);
            }
        }
        public ActionResult Create([Bind(Include = "Id,Name,CreatedAt")] DocumentStatus Status)

        {
            ViewBag.Current = "DocumentStatus";


            if (_context.DocumentStatuses.Any(a => a.Name.Equals(Status.Name, StringComparison.OrdinalIgnoreCase)))
            {
                return(RedirectToAction("Index", new { Id = "CreateError" }));
            }
            if (ModelState.IsValid)
            {
                string NotificationTime = DateTime.Now.ToString("dd/MM/yyyy-HH:mm:ss");


                Status.CreatedAt   = DateTime.Now.ToString("dd/MM/yyyy-HH:mm:ss");
                Status.CreatedById = User.Identity.GetUserId();

                _context.DocumentStatuses.Add(Status);
                _context.SaveChanges();


                string                 UserId       = User.Identity.GetUserId();
                Notification           notification = null;
                List <ApplicationUser> Users        = _context.Users.Where(a => !a.Id.Equals(UserId)).ToList();
                foreach (ApplicationUser user in Users)
                {
                    notification = new Notification()
                    {
                        CreatedAt           = NotificationTime,
                        Active              = false,
                        UserId              = user.Id,
                        Message             = "تم إضافة  حالة وثيقة جديدة   : " + Status.Name,
                        NotificationOwnerId = UserId
                    };
                    _context.Notifications.Add(notification);
                }
                _context.SaveChanges();


                return(RedirectToAction("Index", new { Id = "CreateSuccess" }));
            }

            return(RedirectToAction("Index"));
        }
示例#20
0
        /// <summary>
        /// It seems that it's impossible to pass different parameters to the
        /// same action from a razor view form, so instead different actions are
        /// called from the view and they are relayed here with corresponding status
        /// </summary>
        private async Task <IActionResult> ChangeStatus(DocumentStatus status, SubmitStatusChangeViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View("Details", model));
            }

            var userId = await authService.GetUserIdByClaims(User);

            var success = await documentService.ChangeStatus(model.DocumentId, userId, status, model.Message);

            if (!success)
            {
                ModelState.AddModelError(string.Empty, "An error has occured while changing document status");
            }

            return(RedirectToAction("Details", "Document", new { id = model.DocumentId }));
        }
示例#21
0
 public GatewayDocument(DataRow currentRow)
 {
     submissionID     = int.Parse(currentRow["SubmissionID"].ToString());
     documentID       = currentRow["DocumentID"].ToString();
     applicationID    = int.Parse(currentRow["ApplicationID"].ToString());
     gatewayDoc       = currentRow["SubmittedDocument"].ToString();
     documentType     = currentRow["DocumentType"].ToString();
     isTestMessage    = (currentRow["IsTestMessage"].ToString() == "0") ? false : true;
     usesTestGateway  = (currentRow["UsesTestGateway"].ToString() == "0") ? false : true;
     url              = currentRow["Url"].ToString();
     requiresAuditing = (currentRow["RequiresAuditing"].ToString() == "0") ? false : true;
     requiresLogging  = (currentRow["RequiresLogging"].ToString() == "0") ? false : true;
     correlationID    = currentRow["CorrelationID"].ToString();
     status           = (DocumentStatus)int.Parse(currentRow["Status"].ToString());
     lastPoll         = (DateTime)currentRow["LastPoll"];
     nextPoll         = (DateTime)currentRow["NextPoll"];
     gatewayResponse  = currentRow["ResponseDocument"].ToString();
 }
示例#22
0
 public Document(ObjectId documentID, ObjectId userID, string name, DocumentType documentType,
                 DateTime creationDate)
 {
     ID             = documentID;
     AuthorID       = userID;
     Name           = name;
     CreatedAt      = creationDate;
     UpdatedAt      = creationDate;
     Description    = string.Empty;
     DocumentStatus = new DocumentStatus
     {
         DocumentType = documentType,
         Accesses     = new List <DocumentAccess>
         {
             new DocumentAccess(userID, DocumentUserRole.Creator, AccessType.ReadWrite)
         }
     };
 }
        public ActionResult Details(int?id)
        {
            ViewBag.Current = "DocumentStatus";


            if (id == null)
            {
                return(RedirectToAction("BadRequestError", "ErrorController"));
            }

            DocumentStatus status = _context.DocumentStatuses.Include(a => a.CreatedBy).Include(a => a.UpdatedBy).SingleOrDefault(a => a.Id == id);

            if (status == null)
            {
                return(RedirectToAction("HttpNotFoundError", "ErrorController"));
            }

            return(View(status));
        }
示例#24
0
        public override async Task RunCommand(object sender)
        {
            var engine  = (IAutomationEngineInstance)sender;
            var vTaskId = (Guid)await v_TaskId.EvaluateCode(engine);

            var vAwaitCompletion = (bool)await v_AwaitCompletion.EvaluateCode(engine);

            string vUsername;
            string vPassword;

            var environmentSettings = new EnvironmentSettings();

            environmentSettings.Load();
            AuthMethods authMethods = new AuthMethods();

            authMethods.Initialize(environmentSettings.ServerType, environmentSettings.OrganizationName, environmentSettings.ServerUrl, environmentSettings.Username, environmentSettings.Password);

            if (environmentSettings.ServerType == "Local")
            {
                throw new Exception("Documents commands cannot be used with local Server");
            }
            else
            {
                vUsername = environmentSettings.Username;
                vPassword = environmentSettings.Password;
            }

            var            userInfo  = authMethods.GetDocumentsAuthToken(vUsername, vPassword);
            DocumentStatus docStatus = DocumentMethods.GetDocumentStatus(userInfo, vTaskId);

            if (vAwaitCompletion)
            {
                int vTimeout = (int)await v_Timeout.EvaluateCode(engine);

                docStatus = DocumentMethods.AwaitProcessing(userInfo, vTaskId, vTimeout);
            }

            docStatus.Status.SetVariableValue(engine, v_OutputUserVariableName);
            docStatus.IsDocumentCompleted.SetVariableValue(engine, v_OutputUserVariableName1);
            docStatus.HasError.SetVariableValue(engine, v_OutputUserVariableName2);
            docStatus.IsCurrentlyProcessing.SetVariableValue(engine, v_OutputUserVariableName3);
            docStatus.IsSuccessful.SetVariableValue(engine, v_OutputUserVariableName4);
        }
        public List <DocumentStatus> GetDocumentStatusSelectList(string code)
        {
            List <DocumentStatus> documentStatusList = null;

            try
            {
                using (SqlConnection con = _databaseFactory.GetDBConnection())
                {
                    using (SqlCommand cmd = new SqlCommand())
                    {
                        if (con.State == ConnectionState.Closed)
                        {
                            con.Open();
                        }
                        cmd.Connection  = con;
                        cmd.CommandText = "[PSA].[GetDocumentStatusForSelectList]";
                        cmd.CommandType = CommandType.StoredProcedure;
                        cmd.Parameters.Add("@DocumentTypeCode", SqlDbType.VarChar, 5).Value = code;
                        using (SqlDataReader sdr = cmd.ExecuteReader())
                        {
                            if ((sdr != null) && (sdr.HasRows))
                            {
                                documentStatusList = new List <DocumentStatus>();
                                while (sdr.Read())
                                {
                                    DocumentStatus documentStatus = new DocumentStatus();
                                    {
                                        documentStatus.Code        = (sdr["Code"].ToString() != "" ? int.Parse(sdr["Code"].ToString()) : documentStatus.Code);
                                        documentStatus.Description = (sdr["Description"].ToString() != "" ? sdr["Description"].ToString() : documentStatus.Description);
                                    }
                                    documentStatusList.Add(documentStatus);
                                }
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return(documentStatusList);
        }
示例#26
0
        public GeneralResponse AddDocumentStatus(AddDocumentStatusRequest request)
        {
            GeneralResponse response = new GeneralResponse();

            try
            {
                DocumentStatus documentStatus = new DocumentStatus();
                documentStatus.ID                 = Guid.NewGuid();
                documentStatus.CreateDate         = PersianDateTime.Now;
                documentStatus.CreateEmployee     = _employeeRepository.FindBy(request.CreateEmployeeID);
                documentStatus.DefaultStatus      = request.DefaultStatus;
                documentStatus.CompleteStatus     = request.CompleteStatus;
                documentStatus.DocumentStatusName = request.DocumentStatusName;
                documentStatus.SortOrder          = GetSortOrder();
                documentStatus.RowVersion         = 1;

                #region Validation

                if (documentStatus.GetBrokenRules().Count() > 0)
                {
                    foreach (BusinessRule businessRule in documentStatus.GetBrokenRules())
                    {
                        response.ErrorMessages.Add(businessRule.Rule);
                    }

                    return(response);
                }

                #endregion

                _documentStatusRepository.Add(documentStatus);
                _uow.Commit();

                ////response.success = true;
                response.ID = documentStatus.ID;
            }
            catch (Exception ex)
            {
                response.ErrorMessages.Add(ex.Message);
            }

            return(response);
        }
        /// <summary>
        /// Convert DocumentStatus to SalesStatus
        /// </summary>
        /// <param name="docStatus"></param>
        /// <returns></returns>
        internal static SalesStatus GetSalesStatus(DocumentStatus docStatus)
        {
            switch (docStatus)
            {
            case DocumentStatus.None:           return(SalesStatus.Created);

            case DocumentStatus.PickingList:    return(SalesStatus.Processing);

            case DocumentStatus.PackingSlip:    return(SalesStatus.Delivered);

            case DocumentStatus.Invoice:        return(SalesStatus.Invoiced);

            case DocumentStatus.Canceled:       return(SalesStatus.Canceled);

            case DocumentStatus.Lost:           return(SalesStatus.Lost);

            default:                            return(SalesStatus.Unknown);
            }
        }
 public Task<SyncBasicResponse> ExportToSap(OrderType orderType, DocumentStatus status)
 {
  
     return Task.Run(() =>
                     {
                         var responce = _sapWebProxy.GetNextOrder(orderType, status);
                         if (responce.Success)
                         {
                             var data = JsonConvert.DeserializeObject<OrderExportDocument>(responce.TransactionData);
                             return Export(data);
                         }
                         else
                         {
                             return new SyncBasicResponse { Status = false,Info = responce.ErrorInfo};
                         }
                        
                     });
    
 }
示例#29
0
        public async Task ChangeStatus(int idDocument, DocumentStatus documentStatus)
        {
            var document = await dbContext
                           .Documents
                           .FirstAsync(it => it.IdDocument == idDocument);

            var lastState = await dbContext.DocumentStates.Where(it => it.IdDocument == idDocument).LastAsync();

            var now = DateTime.Now;

            dbContext.Entry(lastState).State = EntityState.Detached;
            lastState.IdDocumentState        = 0;
            lastState.StatusDate             = now;
            lastState.DocumentStatus         = documentStatus;
            lastState.Version = GetNextVersion(lastState.Version, documentStatus);

            document.LastModified = now;
            document.DocumentStates.Add(lastState);
        }
        public ActionResult Edit(DocumentStatus status, string OldName)

        {
            ViewBag.Current = "DocumentStatus";

            if (_context.DocumentStatuses.Where(a => a.Id != status.Id).Any(a => a.Name.Equals(status.Name, StringComparison.OrdinalIgnoreCase)))
            {
                return(RedirectToAction("Index", new { Id = "EditError" }));
            }

            if (ModelState.IsValid)
            {
                status.UpdatedById = User.Identity.GetUserId();
                status.UpdatedAt   = DateTime.Now.ToString("dd/MM/yyyy-HH:mm:ss");
                string NotificationTime = DateTime.Now.ToString("dd/MM/yyyy-HH:mm:ss");

                _context.Entry(status).State = EntityState.Modified;
                _context.SaveChanges();


                string                 UserId       = User.Identity.GetUserId();
                Notification           notification = null;
                List <ApplicationUser> Users        = _context.Users.Where(a => !a.Id.Equals(UserId)).ToList();
                foreach (ApplicationUser user in Users)
                {
                    notification = new Notification()
                    {
                        CreatedAt = NotificationTime,
                        Active    = false,
                        UserId    = user.Id,
                        Message   = "تم تعديل اسم حالة الوثيقة من : " + OldName + " إلى :" + status.Name
                        ,
                        NotificationOwnerId = UserId
                    };
                    _context.Notifications.Add(notification);
                }
                _context.SaveChanges();

                return(RedirectToAction("Index", new { Id = "EditSuccess" }));
            }

            return(RedirectToAction("Index"));
        }
        public ActionResult Delete(int?id)
        {
            ViewBag.Current = "DocumentStatus";


            if (id == null)
            {
                return(RedirectToAction("BadRequestError", "ErrorController"));
            }

            DocumentStatus ststus = _context.DocumentStatuses.Find(id);

            if (ststus == null)
            {
                return(RedirectToAction("HttpNotFoundError", "ErrorController"));
            }

            return(View(ststus));
        }
示例#32
0
        public static Dictionary <string, string> getDocumentProperties(DocuSignEnvelopeInformation envelopeInfo)
        {
            Dictionary <string, string> ecf = new Dictionary <string, string>();

            Predicate <DocumentStatus> docfinder    = (DocumentStatus p) => { return(p.ID == "1"); };
            DocumentStatus             templateName = envelopeInfo.EnvelopeStatus.DocumentStatuses.DocumentStatus.Find(docfinder);
            string docClassNType = templateName == null ? null : templateName.TemplateName;

            ecf.Add(EnvelopeMetaFields.TemplateName, docClassNType);

            Predicate <CustomField> finder      = (CustomField p) => { return(p.Name == EnvelopeMetaFields.AccountId); };
            CustomField             customField = envelopeInfo.EnvelopeStatus.CustomFields.CustomField.Find(finder);
            string accountId = customField == null ? null : customField.Value;

            ecf.Add(EnvelopeMetaFields.AccountId, accountId);

            finder      = (CustomField p) => { return(p.Name == EnvelopeMetaFields.Environment); };
            customField = envelopeInfo.EnvelopeStatus.CustomFields.CustomField.Find(finder);
            string environment = customField == null ? null : customField.Value;

            ecf.Add(EnvelopeMetaFields.Environment, environment);

            finder      = (CustomField p) => { return(p.Name == EnvelopeMetaFields.EID); };
            customField = envelopeInfo.EnvelopeStatus.CustomFields.CustomField.Find(finder);
            string employeeId = customField == null ? null : customField.Value;

            ecf.Add(EnvelopeMetaFields.EID, employeeId);

            finder      = (CustomField p) => { return(p.Name == EnvelopeMetaFields.FirstName); };
            customField = envelopeInfo.EnvelopeStatus.CustomFields.CustomField.Find(finder);
            string firstName = customField == null ? null : customField.Value;

            ecf.Add(EnvelopeMetaFields.FirstName, firstName);

            finder      = (CustomField p) => { return(p.Name == EnvelopeMetaFields.LastName); };
            customField = envelopeInfo.EnvelopeStatus.CustomFields.CustomField.Find(finder);
            string lastName = customField == null ? null : customField.Value;

            ecf.Add(EnvelopeMetaFields.LastName, lastName);

            return(ecf);
        }
示例#33
0
        public void CreateDocument(Document document)
        {
            DocumentDB.Documents.Add(document);
            DocumentDB.SaveChanges();

            DocumentStatus documentStatus = new DocumentStatus {
                DocumentId = document.DocumentId, StatusId = document.DocumentId, Date = DateTime.Now
            };

            DocumentDB.DocumentStatuses.Add(documentStatus);
            DocumentDB.SaveChanges();

            Status status = new Status {
                StatusId = documentStatus.StatusId, Name = "CREATED"
            };

            DocumentDB.Statuses.Add(status);

            DocumentDB.SaveChanges();
        }
示例#34
0
文件: Document.cs 项目: farhatexe/DMS
        public void ChangeStatus(AppUser changeAuthor, DocumentStatus newStatus, string message)
        {
            var availableChanges = AvailableStatusChanges(changeAuthor);

            var canChange = availableChanges.Contains(newStatus);

            if (!canChange)
            {
                throw new InvalidOperationException("Can't change document status");
            }

            if (message == null)
            {
                message = string.Empty;
            }

            history.Add(new DocumentHistoryEntry(changeAuthor, newStatus, message, DateTime.Now));

            CurrentStatus = newStatus;
        }
示例#35
0
        public double GetNextVersion(double current, DocumentStatus status)
        {
            switch (status)
            {
            case DocumentStatus.Draft:
                return(current + DocumentVersions.DRAFT_VERSION_INCREMENT);

            case DocumentStatus.Final:
                return(Math.Round(current + DocumentVersions.FINAL_VERSION_INCREMENT, 0));

            case DocumentStatus.FinalRevizuit:
                return(current + DocumentVersions.FINAL_REVIZUIT_VERSION_INCREMENT);

            case DocumentStatus.Blocat:
                return(current);

            default:
                throw new ArgumentOutOfRangeException(nameof(status), status, null);
            }
        }
示例#36
0
        public static bool CheckDocumentStatusDelete(int id)
        {
            IEnumerable <Document> documents = db.Documents.Where(a => a.StatusId == id);

            if (documents.Count() > 0)
            {
                return(false);
            }

            DocumentStatus mail = db.DocumentStatuses.Find(id);

            if (mail.Type == 1)
            {
                return(false);
            }



            return(true);
        }
        public TransactionResponse DownloadAllAsync(string orderref = "", bool includeInvoiceAndReceipts = true, DocumentStatus documentStatus = DocumentStatus.Closed)
        {
            var time =new TimeSpan(0,0,5,0);
            var time1 = TimeSpan.FromMinutes(5).Seconds;
            var task= Task.Run(async () =>
                                     {
                                          TransactionResponse res=new TransactionResponse();
                                          try
                                          {
                                              string url = string.Format(MiddlewareHttpClient.BaseAddress +
                                                                         "api/Integrations/Transaction?username={0}&password={1}&integrationModule={2}&documentRef={3}&includeInvoiceAndReceipts={4}&documentStatus={5}",
                                                                         _userName,
                                                                         _otherUtilities.MD5Hash(_password),
                                                                         module, orderref,
                                                                         includeInvoiceAndReceipts,documentStatus);
                                              Messenger.Default.Send(
                                                  string.Format(DateTime.Now.ToString("hh:mm:ss") +
                                                                ":Contacting Server =>" +
                                                                MiddlewareHttpClient.BaseAddress));

                                              HttpResponseMessage response =
                                                  await MiddlewareHttpClient.GetAsync(url);
                                              Messenger.Default.Send(
                                                  string.Format(DateTime.Now.ToString("hh:mm:ss") +
                                                                ":Server Response=>" + response.StatusCode));
                                              res=await response.Content.ReadAsAsync<TransactionResponse>();
                                          }catch(Exception ex)
                                          {
                                              
                                          }

                                          return res;
                                          
                                      });

             //Task.Delay(TimeSpan.FromMinutes(5).Seconds);

            task.Wait(time);
            return task.Result;

        }
示例#38
0
 private tblDocument _NewDocument(Guid documentId,
     DocumentType documentType,
     Guid documentIssuerCostCentreId,
     Guid documentIssuerUserId,
     Guid documentIssuerCostCentreApplicationId,
     DateTime documentDateIssued,
     DocumentStatus documentStatus,
     string documentReference,
     DateTime sendDateTime,
     Guid documentRecipientCostCentreId,
      Guid documentparentId,
     double? longitude = null,
     double? latitude = null
     )
 {
     var doc = new tblDocument
         {
             Id = documentId,
             DocumentIssuerCostCentreId = documentIssuerCostCentreId,
             DocumentIssuerUserId = documentIssuerUserId,
             DocumentRecipientCostCentre = documentRecipientCostCentreId,
             DocumentTypeId = (int) documentType,
             DocumentDateIssued = documentDateIssued,
             DocumentStatusId = (int) documentStatus,
             DocumentReference = documentReference,
             IM_DateCreated = DateTime.Now,
             DocumentIssuerCostCentreApplicationId = documentIssuerCostCentreApplicationId,
             IM_IsActive = true,
             Latitude = latitude,
             Longitude = longitude,
             DocumentParentId = documentparentId,
             SendDateTime = sendDateTime.Equals(new DateTime()) ? DateTime.Now : sendDateTime
         };
     if (sendDateTime.ToString("dd/MM/yyyy") == "01/01/0001")
     {
         doc.SendDateTime = DateTime.Now;
     }
     doc.IM_DateLastUpdated = DateTime.Now;
     
     return doc;
 }
        public HttpResponseMessage GetNextOrderToExport(string userName, string password,OrderType ordertype = OrderType.OutletToDistributor,DocumentStatus documentStatus = DocumentStatus.Confirmed)
        {
            var transactionResponse = new TransactionExportResponse();

            try
            {
                _log.InfoFormat("Login attempt for {0} - GetNextOrder", userName);
                CostCentreLoginResponse response = _costCentreApplicationService.CostCentreLogin(userName, password, "HQAdmin");
                AuditCCHit(response.CostCentreId, "Login", "Login attempt for " , response.ErrorInfo);

                if (response.CostCentreId == Guid.Empty)
                {
                    transactionResponse.ErrorInfo = "Invalid user credentials";
                    transactionResponse.Success = false;
                }
                else
                {
                    var data = _orderExportDocumentRepository.GetDocument(ordertype, documentStatus);
                    if (data != null)
                    {
                        transactionResponse.TransactionData = JsonConvert.SerializeObject(data);
                        transactionResponse.Success = true;
                    }
                    else
                    {
                        string documents=ordertype == OrderType.OutletToDistributor ? "Orders" : "Sales Orders";
                        transactionResponse.ErrorInfo =string.Format( "No {0} to import",documents);
                        transactionResponse.Success = false;
                    }
                }
            }
            catch (Exception ex)
            {

                transactionResponse.Success = false;
                transactionResponse.ErrorInfo = "Error: An error occurred executing the task.Result details=>" + ex.Message + "Inner Exception:" + (ex.InnerException != null ? ex.InnerException.Message : "");
                _log.Error(string.Format("Error: An error occurred when exporting transactions for {0}\n"), ex);
            }
            return Request.CreateResponse(HttpStatusCode.OK, transactionResponse);
        }
示例#40
0
        private tblSourcingDocument _NewDocument(Guid documentId,
            DocumentType documentType,
            Guid documentIssuerCostCentreId,
            Guid documentIssuerUserId,
            Guid documentIssuerCostCentreApplicationId,
            DateTime documentDateIssued,
            DocumentStatus documentStatus,
            string documentReference,
            DateTime sendDateTime,
            Guid documentRecipientCostCentreId,
             Guid documentparentId

           
            )
        {
            var doc = new tblSourcingDocument
                {
                    Id = documentId,
                    DocumentIssuerCostCentreId = documentIssuerCostCentreId,
                    DocumentIssuerUserId = documentIssuerUserId,
                    DocumentRecipientCostCentreId = documentRecipientCostCentreId,
                    DocumentTypeId = (int) documentType,
                    DocumentDate = documentDateIssued,
                    DocumentStatusId = (int) documentStatus,
                    DocumentReference = documentReference,
                    IM_DateCreated = DateTime.Now,
                    DocumentIssuerCostCentreApplicationId = documentIssuerCostCentreApplicationId,
                    DateIssued = DateTime.Now,
                    DocumentParentId = documentparentId,
                    DateSent = sendDateTime.Equals(new DateTime()) ? DateTime.Now : sendDateTime,
                  
                };
            if (sendDateTime.ToString("dd/MM/yyyy") == "01/01/0001")
            {
                doc.DateSent = DateTime.Now;
            }
            doc.IM_DateLastUpdated = DateTime.Now;
            
            return doc;
        }
示例#41
0
        public void Execute(DocumentStatus documentStatus)
        {
            try
            {
                switch (documentStatus)
                {
                    case DocumentStatus.Draft:
                        // Do sth
                        break;
                    case DocumentStatus.Released:
                        // Do sth
                        break;
                    default:
                        throw Guards.CreateMissingEnumException(nameof(documentStatus), documentStatus);
                }
            }
            catch (ArgumentOutOfRangeException ex)
            {

                throw;
            }
        }
示例#42
0
        public QueryResult<MainOrderSummary> Query(QueryStandard query, DateTime startdate, DateTime endDate, DocumentStatus? documentStatus, Guid? distributrId = null)
        {
            IQueryable<tblDocument> orders;
            orders = _GetAll(DocumentType.Order, startdate, endDate).Where(s => s.OrderParentId == s.Id);
            orders = orders.Where(s => s.OrderOrderTypeId == (int)OrderType.DistributorToProducer);
            

            if (distributrId.HasValue && distributrId != Guid.Empty)
            {
                orders =
                    orders.Where(
                        s =>
                        s.DocumentRecipientCostCentre == distributrId.Value ||
                        s.DocumentIssuerCostCentreId == distributrId.Value);
            }
            if (documentStatus.HasValue && documentStatus != 0)
            {
                orders = orders.Where(s => s.DocumentStatusId == (int)documentStatus);
            }

            var queryResult = new QueryResult<MainOrderSummary>();

            if (!string.IsNullOrWhiteSpace(query.Name))
                orders = orders.Where(p => p.DocumentReference.ToLower().Contains(query.Name.ToLower()));

            queryResult.Count = orders.Count();

            orders = orders.OrderBy(k => k.Id);

            if (query.Skip.HasValue && query.Take.HasValue)
                orders = orders.Skip(query.Skip.Value).Take(query.Take.Value);

            var result = orders.ToList();

            queryResult.Data = result.Select(k=>MapSummary(k)).ToList();
            query.ShowInactive = false;
            return queryResult;
        }
 public Document()
 {
     Posts = new List<Post>();
     Status = DocumentStatus.New;
 }
        public HttpResponseMessage TransactionGet(string userName, string password, string integrationModule,string documentRef="",OrderType ordertype=OrderType.OutletToDistributor, bool includeInvoiceAndReceipts=false,DocumentStatus documentStatus=DocumentStatus.Closed)
        {
            var transactionResponse = new TransactionResponse();

            try
            {
                _log.InfoFormat("Login attempt for {0} - {1}", userName, integrationModule);
                CostCentreLoginResponse response = _costCentreApplicationService.CostCentreLogin(userName, password, "HQAdmin");
                AuditCCHit(response.CostCentreId, "Login", "Login attempt for " + integrationModule, response.ErrorInfo);

                if (response.CostCentreId == Guid.Empty)
                {
                    transactionResponse.ErrorInfo = "Invalid user credentials";
                    transactionResponse.Result = "Error";
                }
                else
                {

                    transactionResponse = _integrationService.ExportTransactions(integrationModule, documentRef,ordertype, includeInvoiceAndReceipts,documentStatus);


                }
                
            }
            catch (Exception ex)
            {
                transactionResponse.Result = "Error";
                transactionResponse.ErrorInfo = "Error: An error occurred executing the task.Result details=>" + ex.Message+"Inner Exception:"+(ex.InnerException !=null?ex.InnerException.Message:"");
                _log.Error(string.Format("Error: An error occurred when exporting transactions for {0}\n",integrationModule), ex);
            }
            return Request.CreateResponse(HttpStatusCode.OK, transactionResponse);
        }
示例#45
0
        // List of input xml files used in DOM Control files
        public static IEnumerable<string> DOMXmlFiles(DocumentStatus docStatus)
        {
            string status, file, filePath;
            XNamespace ns = "WebData/TestSpec";
            // look in each one of the DOM test control files for xml files used
            foreach (string controlFile in DOMControlFiles())
            {
                XDocument xDoc = null;
                XmlReaderSettings rs = new XmlReaderSettings();
                rs.IgnoreWhitespace = true;
                using (XmlReader reader = XmlReader.Create(FilePathUtil.getStream(controlFile), rs))
                {
                    xDoc = XDocument.Load(reader);
                }

                // get the filePath from the control file
                filePath = (string)xDoc.Descendants(ns + "global").Attributes("filePath").FirstOrDefault();
                if (filePath.StartsWith(@"$(DataPath)\StandardTests\"))
                {
                    filePath = Path.Combine(XLinqTestCase.StandardPath, filePath.Substring(@"$(DataPath)\StandardTests\".Length));
                }
                // get xml file used in each variation
                foreach (XElement e in xDoc.Descendants(ns + "variation").Where(x => x.Attribute("implemented").Value == "true"))
                {
                    file = e.Descendants(ns + "xml").FirstOrDefault().Value.Trim();
                    file = Path.Combine(filePath, file);
                    // check if the file exists, if not then continue
                    try
                    {
                        if (FilePathUtil.getStream(file) == null)
                            continue;
                    }
                    catch (Exception)
                    {
                        continue;
                    }
                    // if there are more than one "result" nodes then find the one that is used for System.Xml
                    IEnumerable<XElement> resultNodes = e.Descendants(ns + "result");
                    IEnumerable<XElement> systemXml = e.Descendants(ns + "System.Xml");
                    if (resultNodes.Count() > 1 && systemXml.Count() > 0)
                    {
                        string resultID = (string)systemXml.Select(x => x.Element(ns + "expectedResult")).Attributes("id").FirstOrDefault();
                        status = (string)resultNodes.Where(x => x.Attribute("id").Value == resultID).Attributes("expected").FirstOrDefault();
                    }
                    else
                        status = (string)resultNodes.Attributes("expected").FirstOrDefault();

                    switch (docStatus)
                    {
                        case DocumentStatus.valid:
                            if ("valid".Equals(status)) yield return file;
                            break;
                        case DocumentStatus.invalid:
                            if ("invalid".Equals(status)) yield return file;
                            break;
                        case DocumentStatus.notWellFormed:
                            if ("not-wf".Equals(status)) yield return file;
                            break;
                        default:
                            yield return file;
                            break;
                    }
                }
            }
        }
示例#46
0
 void ClearAndSetup()
 {
     ReturnNoteId = Guid.Empty;
     SalesMan = null;
     ReturnsDate = null;
     ReturnsList.Clear();
     ReturnsNoteItemList.Clear();
     SelectedDocumentStatus=DocumentStatus.Confirmed;
     Logging.Log("ClearAndSetup", LOGLEVEL.INFO);
 }
示例#47
0
        public static DocumentRevision Create(Core core, Document document, string newRevision, DocumentStatus newStatus)
        {
            if (core == null)
            {
                throw new NullCoreException();
            }

            Item item = Item.Create(core, typeof(DocumentRevision), new FieldValuePair("document_id", document.Id),
                new FieldValuePair("document_revision", newRevision),
                new FieldValuePair("document_revision_status", (byte)newStatus),
                new FieldValuePair("document_storage_path", ""),
                new FieldValuePair("revision_created_date", UnixTime.UnixTimeStamp()),
                new FieldValuePair("revision_released_date", 0));

            return (DocumentRevision)item;
        }
        public List<QuickBooksOrderDocumentDto> GetTransactionPendingExport(bool includeReceiptsAndInvoice = false, DocumentStatus documentStatus = DocumentStatus.Closed)
        {

            var docs = _ctx.ExecuteStoreQuery<tblDocument>(Resources.IntegrationResources.IntegrationResource.SaleOrderPendingExport).ToList();//Properties.Resources.OrdersAndSalesPendingExportQuerySQL).ToList();
            

            List<Guid> docIds = new List<Guid>();
            var ids = new List<Guid>();

            if (documentStatus != DocumentStatus.Closed)
            {
                ids =
                    docs.Where(
                        n =>
                        (n.OrderOrderTypeId == (int)OrderType.OutletToDistributor ||
                         n.OrderOrderTypeId == (int)OrderType.DistributorPOS) &&
                        n.DocumentTypeId == (int)DocumentType.Order &&
                        n.DocumentStatusId == (int)DocumentStatus.Confirmed).Select(n => n.Id).ToList();
            }
            else
            {
                ids =
              docs.Where(
                  n =>
                  (n.OrderOrderTypeId == (int)OrderType.OutletToDistributor ||
                   n.OrderOrderTypeId == (int)OrderType.DistributorPOS) &&
                  n.DocumentTypeId == (int)DocumentType.Order &&
                  n.DocumentStatusId >= (int)DocumentStatus.Approved ||
                  n.DocumentStatusId == (int)DocumentStatus.Closed).Select(n => n.Id).ToList();
            }


            //docIds = System.Diagnostics.Debugger.IsAttached ? ids.Take(5).ToList() : ids.ToList();
            docIds = ids.ToList();

            var results = docIds.ToList().SelectMany(n => MapQuickBooks(n, includeReceiptsAndInvoice)).ToList();
            return results;
        }
        private Guid GetNextOrderId(OrderType orderType, DocumentStatus status)
        {
            
            var query = string.Format(@"SELECT top 1 Id FROM tblDocument 
WHERE (OrderOrderTypeId={0} 
AND DocumentTypeId=1 
AND DocumentStatusId ={1} )
AND  ExtDocumentReference  
              NOT IN(SELECT DISTINCT ExternalDocumentReference
               FROM tblExportImportAudit WHERE DocumentAuditStatus=2 AND ExternalDocumentReference IS NOT NULL)",
                (int) orderType, (int) status);
            var Ids = _ctx.ExecuteStoreQuery<Guid>(query).ToList();
            if (Ids.Any())
                return Ids.FirstOrDefault();
            else
                return Guid.Empty;
        }
 public List<InventoryAdjustmentNote> GetByRecipientCostCentre(int recipientCostCentreId, DocumentStatus? status, DateTime? fromDateIssued, DateTime? toDateIssued)
 {
     throw new NotImplementedException();
 }
 public TransactionResponse ExportTransactions(string integrationModule, string documentRef = "", OrderType orderType = OrderType.OutletToDistributor, bool includeInvoiceAndReceipts = false,DocumentStatus documentStatus=DocumentStatus.Closed)
 {
     var response = new TransactionResponse();
     if(string.IsNullOrEmpty(integrationModule))
     {
         response.ErrorInfo = "Integration Module is not provided";
         response.Result = "Cannot generate export orders";
         response.ResultInfo = "Invalid request";
         return response;
     }
     var requestingIntegrator = (IntegrationModule)Enum.Parse(typeof(IntegrationModule), integrationModule);
     switch (requestingIntegrator)
     {
         case IntegrationModule.Sage:
             response = GenerateSageResponse(documentRef);
             break;
             case IntegrationModule.SAP:
             response = GenerateSapResponse(documentRef,orderType);
             break;
             case IntegrationModule.QuickBooks:
             response = GenerateQuickBooksResponse(documentRef, includeInvoiceAndReceipts,documentStatus);
             break;
         default:
             response.ErrorInfo = "Integration Module provided is not recognised";
     response.Result = "Cannot generate export orders";
     response.ResultInfo = "Invalid request";
             break;
     }
     return response;
 }
示例#52
0
 public List<PaymentNote> GetByIssuerCostCentre(int issuerCostCentreId, DocumentStatus? status, DateTime? fromDateIssued, DateTime? toDateIssued)
 {
     throw new NotImplementedException();
 }
示例#53
0
        public IEnumerable<MainOrderSummary> GetMainOrderSummariyList(DateTime startdate, DateTime endDate,
                                                                      OrderType orderType,
                                                                      DocumentStatus? documentStatus = null,
                                                                      string search = "")
        {
            bool calculateOutStandingPayment = false;
            IQueryable<tblDocument> orders =
                _GetAll(DocumentType.Order, startdate, endDate).Where(s => s.OrderParentId == s.Id);
            if (!string.IsNullOrEmpty(search))
                orders = orders.Where(p => p.DocumentReference.ToLower().StartsWith(search.ToLower()));
            if ((int) orderType != 0)
                //Go:we want outstanding for all order types,we pass 0 for outanding listing for all transactions
                orders = orders.Where(s => s.OrderOrderTypeId == (int) orderType);
            switch (documentStatus)
            {
                case DocumentStatus.Confirmed:
                    // calculateOutStandingPayment = true;
                    orders = GetPendingApproval(orders);
                    break;
                case DocumentStatus.Approved:
                    calculateOutStandingPayment = true;
                    orders = GetPendingDispatch(orders, startdate, endDate);
                    break;
                case DocumentStatus.Dispatched:
                    calculateOutStandingPayment = true;
                    orders = GetDispatched(orders);
                    break;
                case DocumentStatus.OrderBackOrder:
                    orders = GetBackOrder(orders);
                    break;
                case DocumentStatus.OrderLossSale:
                    orders = GetOrderLossSale(orders);
                    break;
                case DocumentStatus.Rejected:
                    orders = GetRejected(orders);
                    break;
                case DocumentStatus.Closed:
                    calculateOutStandingPayment = true;
                    orders = GetClosed(orders);
                    break;
                case DocumentStatus.Outstanding:
                    calculateOutStandingPayment = true;
                    orders = GetOutStandingPayment(orders, startdate, endDate);
                    break;
                case DocumentStatus.UnconfirmedReceiptPayment:
                    calculateOutStandingPayment = true;
                    orders = GetUnconfirmedPayment(orders);
                    break;
                case DocumentStatus.FullyPaidOrders:
                    calculateOutStandingPayment = true;
                    orders = GetFullyPaidOrders(orders);
                    break;
                default:
                    orders = GetPendingConfirmation(orders);
                    break;

            }
            var data =
                orders.OrderByDescending(p => p.DocumentDateIssued).ToList().Select(
                    s => MapSummary(s, calculateOutStandingPayment));
            var count = data.Count();
            return data;

        }
示例#54
0
 public static string ToString(DocumentStatus value)
 {
     if( value==DocumentStatus.Interim )
         return "interim";
     else if( value==DocumentStatus.Final )
         return "final";
     else if( value==DocumentStatus.Amended )
         return "amended";
     else if( value==DocumentStatus.Withdrawn )
         return "withdrawn";
     else
         throw new ArgumentException("Unrecognized DocumentStatus value: " + value.ToString());
 }
示例#55
0
        public IPagedDocumentList<MainOrderSummary> PagedDocumentList(int page, int pageSize, DateTime startdate,
                                                                      DateTime endDate, OrderType orderType,
                                                                      DocumentStatus? documentStatus = null,
                                                                      string search = "")
        {
            endDate=new DateTime(endDate.Year,endDate.Month,endDate.Day,23,59,0);
            bool calculateOutStandingPayment = false;
            IQueryable<tblDocument> orders =
                _GetAll(DocumentType.Order, startdate, endDate).Where(s => s.OrderParentId == s.Id);
            if (!string.IsNullOrEmpty(search))
                orders = orders.Where(p => p.DocumentReference.ToLower().StartsWith(search.ToLower()));
            if ((int) orderType != 0)
                //Go:we want outstanding for all order types,we pass 0 for outanding listing for all transactions
                orders = orders.Where(s => s.OrderOrderTypeId == (int) orderType);


            switch (documentStatus)
            {
                case DocumentStatus.Confirmed:
                    // calculateOutStandingPayment = true;
                   // orders = GetPendingApproval(orders);
                    return GetPendingApproval(page, pageSize, startdate, endDate,orderType);
                    break;
                case DocumentStatus.Approved:
                    orders = GetPendingDispatch(orders, startdate, endDate);
                    break;
                case DocumentStatus.Dispatched:
                    orders = GetDispatched(orders);
                    break;
                case DocumentStatus.OrderBackOrder:
                    orders = GetBackOrder(orders);
                    break;
                case DocumentStatus.OrderLossSale:
                    orders = GetOrderLossSale(orders);
                    break;
                case DocumentStatus.Rejected:
                    orders = GetRejected(orders);
                    break;
                case DocumentStatus.Closed:
                    calculateOutStandingPayment = true;
                    orders = GetClosed(orders);
                    break;
                case DocumentStatus.Outstanding:
                    calculateOutStandingPayment = true;
                    orders = GetOutStandingPayment(orders,startdate,endDate);
                    break;
                case DocumentStatus.UnconfirmedReceiptPayment:
                    calculateOutStandingPayment = true;
                    orders = GetUnconfirmedPayment(orders);
                    break;
                case DocumentStatus.FullyPaidOrders:
                    calculateOutStandingPayment = true;
                    orders = GetFullyPaidOrders(orders);
                    break;
                default:
                    orders = GetPendingConfirmation(orders);
                    break;

            }
            var count = orders.Count();

            PagedDocumentList<MainOrderSummary> pages;
            pages = new PagedDocumentList<MainOrderSummary>(count, page, pageSize);
            int skip = Skip(page, pageSize);
            var data = orders.OrderByDescending(d => d.IM_DateCreated).Skip(skip).Take(pageSize).ToList();

            pages.AddRange(data.Select(s => MapSummary(s, calculateOutStandingPayment)).ToList());
            return pages;
        }
示例#56
0
            public static bool TryParse(string value, out DocumentStatus result)
            {
                result = default(DocumentStatus);

                if( value=="interim")
                    result = DocumentStatus.Interim;
                else if( value=="final")
                    result = DocumentStatus.Final;
                else if( value=="amended")
                    result = DocumentStatus.Amended;
                else if( value=="withdrawn")
                    result = DocumentStatus.Withdrawn;
                else
                    return false;

                return true;
            }
示例#57
0
 private void LoadSelectedTab(TabItem selectedTab)
 {
    switch (selectedTab.Name)
     {
         case "IncompleteTabItem":
             SelectedDocumentStatus=DocumentStatus.Confirmed;
             break;
         case "ClosedTabItem":
             SelectedDocumentStatus = DocumentStatus.Closed;
             break;
     }
     DoLoadReturns();
     
 }
        public List<QuickBooksOrderDocumentDto> GetPendingExport(bool includeReceiptsAndInvoice = false, string docRef = "", DocumentStatus documentStatus = DocumentStatus.Closed)
        {

            var docs = _ctx.ExecuteStoreQuery<tblDocument>(Properties.Resources.OrdersAndSalesPendingExportQuerySQL).ToList();
            //if (!string.IsNullOrEmpty(docRef))
            //{
            //    docRef = docRef.ToLower();
            //    var doc =
            //        _ctx.tblDocument.AsQueryable().Take(1).FirstOrDefault(
            //            p =>p.DocumentReference.ToLower()==docRef|| p.ExtDocumentReference != null && p.ExtDocumentReference.ToLower() == docRef);
            //    return doc != null ? MapQuickBooks(doc.Id, includeReceiptsAndInvoice) : null;

            //}
           
            //var exportedDocRefs = GetExportedDocRefsByIntegrationModule(IntegrationModule.QuickBooks,1);
            ////var docs =
            ////    _ctx.tblDocument.AsQueryable().Take(10).Where(
            ////        n =>
            ////        (!exportedDocRefs.Contains(n.DocumentReference) && !exportedDocRefs.Contains(n.ExtDocumentReference)) &&
            ////        !string.IsNullOrEmpty(n.ExtDocumentReference)).AsQueryable();

            //var docs =
            //    _ctx.tblDocument.Where(
            //        n =>
            //        (!exportedDocRefs.Contains(n.DocumentReference) && !exportedDocRefs.Contains(n.ExtDocumentReference)) &&
            //        !string.IsNullOrEmpty(n.ExtDocumentReference)).AsQueryable().Take(10);




            List<Guid> docIds=new List<Guid>();
            var ids = new List<Guid>();

            if(documentStatus!=DocumentStatus.Closed)
            {
                ids =
                    docs.Where(
                        n =>
                        (n.OrderOrderTypeId == (int) OrderType.OutletToDistributor ||
                         n.OrderOrderTypeId == (int) OrderType.DistributorPOS) &&
                        n.DocumentTypeId == (int) DocumentType.Order &&
                        n.DocumentStatusId == (int) DocumentStatus.Confirmed).Select(n => n.Id).ToList();
            }
            else
            {
                 ids =
               docs.Where(
                   n =>
                   (n.OrderOrderTypeId == (int)OrderType.OutletToDistributor ||
                    n.OrderOrderTypeId == (int)OrderType.DistributorPOS) &&
                   n.DocumentTypeId == (int)DocumentType.Order &&
                   n.DocumentStatusId >= (int)DocumentStatus.Approved ||
                   n.DocumentStatusId == (int)DocumentStatus.Closed).Select(n => n.Id).ToList();
            }
          

            //docIds = System.Diagnostics.Debugger.IsAttached ? ids.Take(5).ToList() : ids.ToList();
           docIds = ids.ToList();

           var results= docIds.ToList().SelectMany(n => MapQuickBooks(n, includeReceiptsAndInvoice)).ToList();
            return results;
        }
       private TransactionResponse GenerateQuickBooksResponse(string documentRef,bool includeInvoiceAndReceipts,DocumentStatus documentStatus=DocumentStatus.Closed)
       {
           var response = new TransactionResponse();

           var orders = _quickBooksTransactionsDownloadService.GetOrdersPendingExport(documentRef,
                                                                                      includeInvoiceAndReceipts, documentStatus);

           if (orders == null || !orders.Any())
           {
               response.ErrorInfo = "Success";
               response.Result = "Order not found";
               response.ResultInfo = "No transaction to export";
               return response;
           }
           response.DocRefs =
               orders.Where(p => p.DocumentType == DocumentType.Order).Select(n => n.GenericReference).Distinct<string>().ToList
                   ();
           response.TransactionData = JsonConvert.SerializeObject(orders);
           response.ErrorInfo = "Success";
           response.Result = "success";
           return response;
       }
 public List<DispatchNote> GetByRecipientCostCentre(Guid recipientCostCentreId, DocumentStatus? status, DateTime? fromDateIssued, DateTime? toDateIssued)
 {
     throw new NotImplementedException();
 }