コード例 #1
0
        public string SaveUpdateInvoice(InvoiceModel model)
        {
            string          msg    = "";
            ShomaRMEntities db     = new ShomaRMEntities();
            int             userid = ShomaRM.Models.ShomaGroupWebSession.CurrentUser != null ? ShomaRM.Models.ShomaGroupWebSession.CurrentUser.UserID : 0;

            if (model.InvoiceID == 0)
            {
                var saveInvoice = new tbl_Invoice()
                {
                    InvoiceNumber = model.InvoiceNumber,
                    Vendor        = model.Vendor,
                    InvoiceDesc   = model.InvoiceDesc,
                    InvoiceDate   = model.InvoiceDate,
                    ReceivedDate  = model.ReceivedDate,
                    PaymentDate   = model.PaymentDate,
                    TotalAmount   = model.TotalAmount,
                    Route         = model.Route,
                    ExportNow     = model.ExportNow,
                    ExportedDate  = model.ExportedDate,
                    ExportedBy    = model.ExportedBy,
                    Approved      = model.Approved,
                    ApprovedBy    = model.ApprovedBy,
                    BatchID       = model.BatchID,
                    CreatedBy     = userid,
                    CreatedDate   = DateTime.Now.Date
                };
                db.tbl_Invoice.Add(saveInvoice);
                db.SaveChanges();
                msg = "Invoice Save Successfully";
            }
            else
            {
                var GetInvoiceData = db.tbl_Invoice.Where(p => p.InvoiceID == model.InvoiceID).FirstOrDefault();

                if (GetInvoiceData != null)
                {
                    GetInvoiceData.InvoiceNumber = model.InvoiceNumber;
                    GetInvoiceData.Vendor        = model.Vendor;
                    GetInvoiceData.InvoiceDesc   = model.InvoiceDesc;
                    GetInvoiceData.InvoiceDate   = model.InvoiceDate;
                    GetInvoiceData.ReceivedDate  = model.ReceivedDate;
                    GetInvoiceData.PaymentDate   = model.PaymentDate;
                    GetInvoiceData.TotalAmount   = model.TotalAmount;
                    GetInvoiceData.Route         = model.Route;
                    GetInvoiceData.ExportNow     = model.ExportNow;
                    GetInvoiceData.ExportedDate  = model.ExportedDate;
                    GetInvoiceData.ExportedBy    = model.ExportedBy;
                    GetInvoiceData.Approved      = model.Approved;
                    GetInvoiceData.ApprovedBy    = model.ApprovedBy;
                    GetInvoiceData.BatchID       = model.BatchID;
                    GetInvoiceData.CreatedBy     = userid;
                    GetInvoiceData.CreatedDate   = DateTime.Now.Date;
                    db.SaveChanges();
                    msg = "Invoice Updated Successfully";
                }
            }
            db.Dispose();
            return(msg);
        }
コード例 #2
0
        /// <summary>
        /// Adds the history.
        /// </summary>
        /// <param name="dataManager">The data manager.</param>
        /// <param name="invoice">The invoice.</param>
        protected void AddHistory(DataManager dataManager, tbl_Invoice invoice)
        {
            var invoiceHistory = new tbl_InvoiceHistory
            {
                InvoiceID             = invoice.ID,
                AuthorID              = (Guid)CurrentUser.Instance.ContactID,
                PaymentDatePlanned    = invoice.PaymentDatePlanned,
                PaymentDateActual     = invoice.PaymentDateActual,
                InvoiceAmount         = invoice.InvoiceAmount,
                InvoiceStatusID       = invoice.InvoiceStatusID,
                IsExistBuyerComplaint = invoice.IsExistBuyerComplaint,
                Note = invoice.Note
            };

            dataManager.InvoiceHistory.Add(invoiceHistory);
        }
コード例 #3
0
        /// <summary>
        /// Adds the specified invoice.
        /// </summary>
        /// <param name="invoice">The invoice.</param>
        /// <returns></returns>
        public tbl_Invoice Add(tbl_Invoice invoice)
        {
            invoice.ID        = Guid.NewGuid();
            invoice.CreatedAt = DateTime.Now;
            _dataContext.tbl_Invoice.AddObject(invoice);
            _dataContext.SaveChanges();

            AddHistory(new DataManager(), invoice);

            if (invoice.InvoiceStatusID == (int)InvoiceStatus.PendingPayment)
            {
                InvoiceNotificationService.PendingPayment(invoice.ID);
            }

            return(invoice);
        }
コード例 #4
0
        /// <summary>
        /// Updates the specified invoice.
        /// </summary>
        /// <param name="invoice">The invoice.</param>
        public void Update(tbl_Invoice invoice)
        {
            var dataManager       = new DataManager();
            var invoiceInDataBase = dataManager.Invoice.SelectById(invoice.SiteID, invoice.ID);

            invoice.ModifiedAt = DateTime.Now;
            _dataContext.SaveChanges();

            if (invoice.PaymentDatePlanned != invoiceInDataBase.PaymentDatePlanned || invoice.PaymentDateActual != invoiceInDataBase.PaymentDateActual ||
                invoice.InvoiceAmount != invoiceInDataBase.InvoiceAmount || invoice.InvoiceStatusID != invoiceInDataBase.InvoiceStatusID ||
                invoice.IsExistBuyerComplaint != invoiceInDataBase.IsExistBuyerComplaint || invoice.Note != invoiceInDataBase.Note)
            {
                AddHistory(dataManager, invoice);
            }

            if (invoice.InvoiceStatusID != invoiceInDataBase.InvoiceStatusID && invoice.InvoiceStatusID == (int)InvoiceStatus.PendingPayment)
            {
                InvoiceNotificationService.PendingPayment(invoice.ID);
            }
        }
コード例 #5
0
        private string AddInvoiceRow(tbl_Invoice invoice, tbl_ServiceLevelContact serviceLevelContact)
        {
            var printLink = string.Empty;

            if (PortalSettings != null)
            {
                PortalLink = DataManager.PortalSettings.SelectPortalLink(PortalSettings.SiteID, true);
                printLink  = string.Format(InvoicePrintLinkTemplate.Replace("#PortalLink#", PortalLink), invoice.ID);
            }


            if (serviceLevelContact.InvoiceInformFormID != (int)InvoiceInformForm.None)
            {
                var siteActionAttachment = new tbl_SiteActionAttachment
                {
                    SiteID       = SiteAction.SiteID,
                    SiteActionID = SiteAction.ID,
                    FileName     = printLink + "?autoexport=pdf"
                };
                DataManager.SiteActionAttachment.Add(siteActionAttachment);

                var webClient = new WebClient();
                var file      = webClient.DownloadData(siteActionAttachment.FileName);
                MailMessage.Attachments.Add(new Attachment(new MemoryStream(file), string.Format("Счет #{0}.pdf", invoice.Number), MediaTypeNames.Application.Pdf));
            }

            var row = SiteActionTemplates.InvoiceRowTemplate;

            row = row.Replace("#Invoice.List.PrintVersion.Link#", printLink).Replace("#Invoice.List.Number#", invoice.Number)
                  .Replace("#Invoice.List.CreatedAt#", invoice.CreatedAt.ToString("dd.MM.yyyy"))
                  .Replace("#Invoice.List.Amount#", invoice.InvoiceAmount.ToString("F"))
                  .Replace("#Invoice.List.PaymentDatePlanned#", invoice.PaymentDatePlanned.HasValue ? invoice.PaymentDatePlanned.Value.ToString("dd.MM.yyyy") : "")
                  .Replace("#Invoice.List.Note#", invoice.Note);

            return(row);
        }