Ejemplo n.º 1
0
        public bool SaveInvoice(List <Invoice> saveData)
        {
            using (DbContextTransaction transaction = Context.Database.BeginTransaction())
            {
                try
                {
                    long seq = InvoiceDAO.GetInvoiceSEQ();
                    foreach (Invoice data in saveData)
                    {
                        switch (data.Status)
                        {
                        // Add new
                        case ModifyMode.Insert:
                            seq++;
                            data.InvoiceID = GenerateID.InvoiceID(seq);
                            this.InvoiceDAO.InsertInvoice(data);
                            break;

                        // Update
                        case ModifyMode.Update:
                            this.InvoiceDAO.UpdateInvoice(data);
                            break;

                        // Delete
                        case ModifyMode.Delete:
                            this.InvoiceDAO.DeleteInvoice(data.InvoiceID, data.CompanyID);
                            break;
                        }
                    }

                    transaction.Commit();

                    return(true);
                }
                catch (Exception ex)
                {
                    transaction.Rollback();
                    BSLog.Logger.Error(ex.Message);
                    return(false);
                }
            }
        }
Ejemplo n.º 2
0
        public bool SaveInvoice(List <Invoice> saveData, List <InvoiceS35> DataS35)
        {
            using (DbContextTransaction transaction = Context.Database.BeginTransaction())
            {
                try
                {
                    long seq = InvoiceDAO.GetInvoiceSEQ();
                    foreach (Invoice data in saveData)
                    {
                        switch (data.Status)
                        {
                        // Add new
                        case ModifyMode.Insert:
                            seq++;
                            data.InvoiceID = GenerateID.InvoiceID(seq);
                            Boolean resultInsert = false;
                            resultInsert = this.InvoiceDAO.InsertInvoice(data);
                            if (resultInsert)
                            {
                                //Nếu tồn tại S35ID thì update liên kết cho S35
                                if (data.InvoiceS35ID != null)
                                {
                                    List <InvoiceS35> invoiceS35 = new List <InvoiceS35>();
                                    invoiceS35 = DataS35.Where(o => o.InvoiceS35ID == data.InvoiceS35ID).ToList();
                                    if (invoiceS35.Count > 0)
                                    {
                                        invoiceS35[0].StatusLienKet = true;
                                        this.InvoiceS35DAO.UpdateInvoiceS35(invoiceS35[0]);
                                    }
                                }
                            }
                            else
                            {
                                transaction.Rollback();
                                BSLog.Logger.Error("InvoiceLogic 107 InserInvoice Fail!");
                                return(false);
                            }
                            break;

                        // Update
                        case ModifyMode.Update:
                            this.InvoiceDAO.UpdateInvoice(data);
                            break;

                        // Delete
                        case ModifyMode.Delete:
                            this.InvoiceDAO.DeleteInvoice(data.InvoiceID, data.CompanyID);
                            break;
                        }
                    }
                    transaction.Commit();
                    return(true);
                }
                catch (Exception ex)
                {
                    transaction.Rollback();
                    BSLog.Logger.Error(ex.Message);
                    return(false);
                }
            }
        }