コード例 #1
0
        internal void Update(OutputInvoice parent)
        {
            try
            {
                this.RaiseListChangedEvents = false;

                SessionCode = parent.SessionCode;

                // update (thus deleting) any deleted child objects
                foreach (CobroFactura obj in DeletedList)
                {
                    obj.DeleteSelf(parent);
                }

                // now that they are deleted, remove them from memory too
                DeletedList.Clear();

                // add/update any current child objects
                foreach (CobroFactura obj in this)
                {
                    if (obj.IsNew)
                    {
                        obj.Insert(parent);
                    }
                    else
                    {
                        obj.Update(parent);
                    }
                }
            }
            finally
            {
                this.RaiseListChangedEvents = true;
            }
        }
コード例 #2
0
        internal void DeleteSelf(OutputInvoice parent)
        {
            // if we're not dirty then don't update the database
            if (!this.IsDirty)
            {
                return;
            }

            // if we're new then don't update the database
            if (this.IsNew)
            {
                return;
            }

            try
            {
                SessionCode = parent.SessionCode;
                Session().Delete(Session().Get <ChargeOperationRecord>(Oid));
            }
            catch (Exception ex)
            {
                throw new iQPersistentException(iQExceptionHandler.GetAllMessages(ex));
            }

            MarkNew();
        }
コード例 #3
0
 private void BUT_Save_Click(object sender, EventArgs e)
 {
     _invoice = new OutputInvoice(Convert.ToInt32(TB_InvoiceNumber.Text), _products[0].Date, _products[0].ClientId);
     _queries.SaveOutputInvoice(_invoice, _products);
     _queries.SaveProductsSoldCount(_products);
     this.Close();
 }
コード例 #4
0
        public static CQueryDef SaveIntoSaleProducts(OutputInvoice Invoice, OutputProduct Product)
        {
            var sql = string.Format(@"INSERT INTO Sale_Products(Product_Key, Count, Price, Sale_Key) VALUES('{0}', '{1}', '{2}', '{3}')",
                                    Product.Product_Key, Product.Count, Product.Price, Invoice.SaleKey);

            return(new CQueryDef(sql, CSqlReader.SqlStorage.ExecuteNonQuery));
        }
コード例 #5
0
        public OutputInvoice Delete(int id)
        {
            // Load output invoice that will be deleted
            OutputInvoice dbEntry = context.OutputInvoices
                                    //.Include(o => o.InvoiceItems)
                                    .FirstOrDefault(x => x.Id == id && x.Active == true);

            if (dbEntry != null)
            {
                // Set activity
                dbEntry.Active = false;
                // Set timestamp
                dbEntry.UpdatedAt = DateTime.Now;

                //if (dbEntry.InvoiceItems != null && dbEntry.InvoiceItems.Count > 0)
                //{
                //    foreach (var item in dbEntry.InvoiceItems)
                //    {
                //        if (item != null)
                //        {
                //            item.Active = false;
                //        }
                //    }
                //}
            }

            return(dbEntry);
        }
コード例 #6
0
        public OutputInvoiceResponse Update(OutputInvoiceViewModel oi)
        {
            OutputInvoiceResponse response = new OutputInvoiceResponse();

            try
            {
                //List<OutputInvoiceItem> outputInvoiceItems = oi.ConvertToOutputInvoice().InvoiceItems;
                //oi.SumOfBase = outputInvoiceItems.Sum(x => x.Base);
                //oi.SumOfPdvValue = outputInvoiceItems.Sum(x => x.Pdv);
                //oi.SumOfTotalValue = outputInvoiceItems.Sum(x => x.TotalPrice);
                //oi.OutputInvoiceSubItems = null;

                OutputInvoice updatedOutputInvoice = unitOfWork.GetOutputInvoiceRepository().Update(oi.ConvertToOutputInvoice());

                //unitOfWork.GetOutputInvoiceItemRepository().UpdateOutputInvoiceItems(outputInvoiceItems ?? new List<OutputInvoiceItem>(), updatedOutputInvoice);

                unitOfWork.Save();

                response.OutputInvoice = updatedOutputInvoice.ConvertToOutputInvoiceViewModel();
                response.Success       = true;
            }
            catch (Exception ex)
            {
                response.OutputInvoice = new OutputInvoiceViewModel();
                response.Success       = false;
                response.Message       = ex.Message;
            }

            return(response);
        }
コード例 #7
0
        internal void DeleteSelf(OutputInvoice parent)
        {
            // if we're not dirty then don't update the database
            if (!this.IsDirty)
            {
                return;
            }

            // if we're new then don't update the database
            if (this.IsNew)
            {
                return;
            }

            try
            {
                SessionCode = parent.SessionCode;
                Session().Delete(Session().Get <OutputDeliveryInvoiceRecord>(Oid));
            }
            catch (Exception ex)
            {
                iQExceptionHandler.TreatException(ex);
            }

            MarkNew();
        }
コード例 #8
0
        public OutputInvoice Create(OutputInvoice outputInvoice)
        {
            //// Attach business partner
            //int businessPartnerId = outputInvoice.BusinessPartner?.Id ?? 0;
            //outputInvoice.BusinessPartner = context.BusinessPartners
            //    .FirstOrDefault(x => x.Id == businessPartnerId && x.Active == true);

            // Attach company
            int companyId = outputInvoice.Company?.Id ?? 0;

            outputInvoice.Company = context.Companies
                                    .FirstOrDefault(x => x.Id == companyId && x.Active == true);

            // Attach user
            int userId = outputInvoice?.CreatedBy?.Id ?? 0;

            outputInvoice.CreatedBy = context.Users
                                      .FirstOrDefault(x => x.Id == userId && x.Active == true);

            // Set activity
            outputInvoice.Active = true;

            // Set timestamps
            outputInvoice.CreatedAt = DateTime.Now;
            outputInvoice.UpdatedAt = DateTime.Now;

            // Add OutputInvoice to database
            context.OutputInvoices.Add(outputInvoice);

            return(outputInvoice);
        }
コード例 #9
0
 public void SaveOutputInvoice(OutputInvoice invoice, List <OutputProduct> products)
 {
     doQuery.Start(SqlQueries.SaveIntoSales(invoice));
     foreach (var p in products)
     {
         doQuery.Start(SqlQueries.SaveIntoSaleProducts(invoice, p));
     }
 }
コード例 #10
0
 public InvoiceUIForm(OutputInvoice invoice)
     : base(null)
 {
     InitializeComponent();
     _entity = invoice.Clone();
     _entity.BeginEdit();
     SetFormData();
 }
コード例 #11
0
        internal void Update(OutputInvoice parent)
        {
            // if we're not dirty then don't update the database
            if (!this.IsDirty)
            {
                return;
            }

            this.OidFactura = parent.Oid;

            ValidationRules.CheckRules();

            if (!IsValid)
            {
                throw new iQValidationException(Library.Resources.Messages.GENERIC_VALIDATION_ERROR);
            }

            SessionCode = parent.SessionCode;
            OutputInvoiceLineRecord obj = Session().Get <OutputInvoiceLineRecord>(Oid);

            obj.CopyValues(Base.Record);
            Session().Update(obj);

            if (OidPartida == 0)
            {
                OutputDeliveries albaranes = OutputDeliveries.GetList(parent.GetAlbaranes(), true, true, parent.SessionCode);

                OutputDeliveryLine concepto = null;
                OutputDelivery     albaran  = null;

                foreach (OutputDelivery item in albaranes)
                {
                    albaran = item;

                    foreach (OutputDeliveryLine ca in item.Conceptos)
                    {
                        if (ca.Oid == OidConceptoAlbaran)
                        {
                            concepto = ca;
                            break;
                        }
                    }

                    if (concepto != null)
                    {
                        break;
                    }
                }

                if (concepto != null)
                {
                    concepto.CopyFrom(this);
                    albaran.CalculateTotal();
                }
            }

            MarkOld();
        }
コード例 #12
0
        public static AlbaranFacturas GetChildList(OutputInvoice parent, bool childs)
        {
            CriteriaEx criteria = AlbaranFactura.GetCriteria(parent.SessionCode);

            criteria.Query  = AlbaranFacturas.SELECT(parent);
            criteria.Childs = childs;

            return(DataPortal.Fetch <AlbaranFacturas>(criteria));
        }
コード例 #13
0
        public static CobroFacturas GetChildList(OutputInvoice parent, bool childs)
        {
            CriteriaEx criteria = CobroFactura.GetCriteria(parent.SessionCode);

            criteria.Query  = CobroFacturas.SELECT_BY_FACTURA(parent.Oid);
            criteria.Childs = childs;

            return(DataPortal.Fetch <CobroFacturas>(criteria));
        }
コード例 #14
0
        public override void OpenAddForm()
        {
            InvoiceAddForm form = new InvoiceAddForm(this);

            AddForm(form);
            if (form.ActionResult == DialogResult.OK)
            {
                _entity = form.Entity;
            }
        }
コード例 #15
0
        public void OpenAddForm(ClienteInfo cliente, OutputDeliveryInfo delivery)
        {
            InvoiceAddForm form = new InvoiceAddForm(cliente, delivery, this);

            AddForm(form);
            if (form.ActionResult == DialogResult.OK)
            {
                _entity = form.Entity;
            }
        }
コード例 #16
0
        public override void UpdateList()
        {
            switch (_current_action)
            {
            case molAction.Add:
            case molAction.Copy:
                if (_entity == null)
                {
                    return;
                }
                List.AddItem(_entity.GetInfo(false));
                if (FilterType == IFilterType.Filter)
                {
                    OutputInvoiceList listA = OutputInvoiceList.GetList((SortedBindingList <OutputInvoiceInfo>)_filter_results);
                    listA.AddItem(_entity.GetInfo(false));
                    _filter_results = listA.GetSortedList();
                }
                break;

            case molAction.Edit:
            case molAction.ChangeStateContabilizado:
            case molAction.ChangeStateEmitido:
            case molAction.Unlock:
            case molAction.PrintDetail:
            case molAction.ExportPDF:
            case molAction.EmailPDF:
                if (_entity == null)
                {
                    return;
                }
                ActiveItem.CopyFrom(_entity);
                break;

            case molAction.Delete:
                if (ActiveItem == null)
                {
                    return;
                }
                List.RemoveItem(ActiveOID);
                if (FilterType == IFilterType.Filter)
                {
                    OutputInvoiceList listD = OutputInvoiceList.GetList((SortedBindingList <OutputInvoiceInfo>)_filter_results);
                    listD.RemoveItem(ActiveOID);
                    _filter_results = listD.GetSortedList();
                }
                break;
            }

            RefreshSources();
            if (_entity != null)
            {
                Select(_entity.Oid);
            }
            _entity = null;
        }
コード例 #17
0
        private static ModeloList GetList(string query, bool childs)
        {
            CriteriaEx criteria = OutputInvoice.GetCriteria(OutputInvoice.OpenSession());

            criteria.Childs = childs;

            criteria.Query = query;
            ModeloList list = DataPortal.Fetch <ModeloList>(criteria);

            CloseSession(criteria.SessionCode);
            return(list);
        }
コード例 #18
0
 public void Remove(OutputInvoice factura, OutputDeliveryInfo albaran)
 {
     foreach (AlbaranFactura item in this)
     {
         if (item.OidFactura == factura.Oid && item.OidAlbaran == albaran.Oid)
         {
             this.Remove(item.Oid);
             factura.SetAlbaranes();
             break;
         }
     }
 }
コード例 #19
0
        internal void Update(OutputInvoice parent)
        {
            try
            {
                this.RaiseListChangedEvents = false;

                SessionCode = parent.SessionCode;

                // update (thus deleting) any deleted child objects
                foreach (AlbaranFactura obj in DeletedList)
                {
                    if (!GetItem(obj.OidFactura, obj.OidAlbaran))
                    {
                        obj.DeleteSelf(parent);
                    }
                }

                // add/update any current child objects
                foreach (AlbaranFactura obj in this)
                {
                    bool existe = false;

                    if (obj.IsNew)
                    {
                        //Si el albarán se ha eliminado y se ha vuelto a insertar no hay que volver a guardarlo
                        foreach (AlbaranFactura albaran in DeletedList)
                        {
                            if (albaran.OidAlbaran == obj.OidAlbaran)
                            {
                                existe = true;
                                break;
                            }
                        }
                        if (existe)
                        {
                            continue;
                        }
                        obj.Insert(parent);
                    }
                    else
                    {
                        obj.Update(parent);
                    }
                }

                // now that they are deleted, remove them from memory too
                DeletedList.Clear();
            }
            finally
            {
                this.RaiseListChangedEvents = true;
            }
        }
コード例 #20
0
        public static CobroFacturaList GetChildList(OutputInvoiceInfo parent, bool childs)
        {
            CriteriaEx criteria = CobroFactura.GetCriteria(OutputInvoice.OpenSession());

            criteria.Query  = CobroFacturaList.SELECT_BY_FACTURA(parent.Oid);
            criteria.Childs = childs;

            CobroFacturaList list = DataPortal.Fetch <CobroFacturaList>(criteria);

            list.CloseSession();

            return(list);
        }
コード例 #21
0
        public static CobroFactura NewChild(OutputInvoice parent)
        {
            if (!CanAddObject())
            {
                throw new System.Security.SecurityException(Library.Resources.Messages.USER_NOT_ALLOWED);
            }

            CobroFactura obj = new CobroFactura();

            obj.OidFactura = parent.Oid;

            return(obj);
        }
コード例 #22
0
        public OutputInvoice Update(OutputInvoice outputInvoice)
        {
            // Load output invoice that will be updated
            OutputInvoice dbEntry = context.OutputInvoices
                                    //.Include(x => x.BusinessPartner)
                                    .Include(x => x.CreatedBy)
                                    .FirstOrDefault(x => x.Id == outputInvoice.Id && x.Active == true);

            if (dbEntry != null)
            {
                // Attach business partner
                //int businessPartnerId = outputInvoice.BusinessPartner?.Id ?? 0;
                //dbEntry.BusinessPartner = context.BusinessPartners
                //    .FirstOrDefault(x => x.Id == businessPartnerId && x.Active == true);

                // Attach company
                int companyId = outputInvoice.Company?.Id ?? 0;
                dbEntry.Company = context.Companies
                                  .FirstOrDefault(x => x.Id == companyId && x.Active == true);

                // Attach user
                int userId = outputInvoice?.CreatedBy?.Id ?? 0;
                dbEntry.CreatedBy = context.Users
                                    .FirstOrDefault(x => x.Id == userId && x.Active == true);

                // Set properties
                dbEntry.Code         = outputInvoice.Code;
                dbEntry.Construction = outputInvoice.Construction;

                dbEntry.InvoiceDate = outputInvoice.InvoiceDate;

                dbEntry.BusinessPartner = outputInvoice.BusinessPartner;
                dbEntry.InvoiceType     = outputInvoice.InvoiceType;
                dbEntry.Quantity        = outputInvoice.Quantity;
                dbEntry.TrafficDate     = outputInvoice.TrafficDate;
                dbEntry.Price           = outputInvoice.Price;

                dbEntry.Rebate      = outputInvoice.Rebate;
                dbEntry.RebateValue = outputInvoice.RebateValue;

                dbEntry.Base  = outputInvoice.Base;
                dbEntry.PDV   = outputInvoice.PDV;
                dbEntry.Total = outputInvoice.Total;


                // Set timestamp
                dbEntry.UpdatedAt = DateTime.Now;
            }

            return(dbEntry);
        }
コード例 #23
0
        public OutputInvoice Create(OutputInvoice outputInvoice)
        {
            if (context.OutputInvoices.Where(x => x.Identifier != null && x.Identifier == outputInvoice.Identifier).Count() == 0)
            {
                outputInvoice.Id = 0;

                outputInvoice.Code   = GetNewCodeValue(outputInvoice.CompanyId ?? 0);
                outputInvoice.Active = true;

                outputInvoice.UpdatedAt = DateTime.Now;
                outputInvoice.CreatedAt = DateTime.Now;

                context.OutputInvoices.Add(outputInvoice);
                return(outputInvoice);
            }
            else
            {
                // Load favor that will be updated
                OutputInvoice dbEntry = context.OutputInvoices
                                        .FirstOrDefault(x => x.Identifier == outputInvoice.Identifier && x.Active == true);

                if (dbEntry != null)
                {
                    dbEntry.BusinessPartnerId = outputInvoice.BusinessPartnerId ?? null;
                    dbEntry.CompanyId         = outputInvoice.CompanyId ?? null;
                    dbEntry.CreatedById       = outputInvoice.CreatedById ?? null;

                    // Set properties
                    dbEntry.Code          = outputInvoice.Code;
                    dbEntry.Supplier      = outputInvoice.Supplier;
                    dbEntry.Address       = outputInvoice.Address;
                    dbEntry.InvoiceNumber = outputInvoice.InvoiceNumber;
                    dbEntry.InvoiceDate   = outputInvoice.InvoiceDate;
                    dbEntry.AmountNet     = outputInvoice.AmountNet;
                    dbEntry.PdvPercent    = outputInvoice.PdvPercent;
                    dbEntry.Pdv           = outputInvoice.Pdv;
                    dbEntry.AmountGross   = outputInvoice.AmountGross;
                    dbEntry.Currency      = outputInvoice.Currency;
                    dbEntry.DateOfPayment = outputInvoice.DateOfPayment;
                    dbEntry.Status        = outputInvoice.Status;
                    dbEntry.StatusDate    = outputInvoice.StatusDate;
                    dbEntry.Description   = outputInvoice.Description;
                    dbEntry.Path          = outputInvoice.Path;

                    // Set timestamp
                    dbEntry.UpdatedAt = DateTime.Now;
                }

                return(dbEntry);
            }
        }
コード例 #24
0
        public OutputInvoice GetOutputInvoice(int id)
        {
            OutputInvoice outputInvoice = context.OutputInvoices
                                          .Include(x => x.CreatedBy)
                                          //.Include(x => x.InvoiceItems)
                                          .FirstOrDefault(x => x.Id == id && x.Active == true);

            //if (outputInvoice != null && outputInvoice.InvoiceItems != null)
            //{
            //    outputInvoice.InvoiceItems.RemoveAll(x => x.Active == false);
            //}

            return(outputInvoice);
        }
コード例 #25
0
        public static OutputInvoiceViewModel ConvertToOutputInvoiceViewModel(this OutputInvoice outputInvoice)
        {
            OutputInvoiceViewModel outputInvoiceViewModel = new OutputInvoiceViewModel()
            {
                Id = outputInvoice.Id,

                Code = outputInvoice.Code,

                Construction = outputInvoice.Construction,

                InvoiceDate = outputInvoice.InvoiceDate,

                BusinessPartner = outputInvoice.BusinessPartner,

                InvoiceType = outputInvoice.InvoiceType,

                Quantity = outputInvoice.Quantity,

                TrafficDate = outputInvoice.TrafficDate,

                Price       = outputInvoice.Price,
                Rebate      = outputInvoice.Rebate,
                RebateValue = outputInvoice.RebateValue,
                Base        = outputInvoice.Base,
                PDV         = outputInvoice.PDV,
                Total       = outputInvoice.Total,

                //Status = outputInvoice.Status,
                //IsLocked = outputInvoice.IsLocked,
                //LockedDate = outputInvoice.LockedDate,

                Company = outputInvoice.Company?.ConvertToCompanyViewModelLite(),

                UpdatedAt = outputInvoice.UpdatedAt,
                CreatedAt = outputInvoice.CreatedAt,
                //IsCancelItem = outputInvoice.IsCancelItem,
            };

            //if (outputInvoice.InvoiceItems != null && outputInvoice.InvoiceItems.Count > 0)
            //{
            //    outputInvoiceViewModel.OutputInvoiceSubItems = new ObservableCollection<OutputInvoiceSubItemViewModel>(outputInvoice.InvoiceItems.ConvertToOutputInvoiceSubItemViewModelListLite());
            //}
            //else
            //{
            //    outputInvoiceViewModel.OutputInvoiceSubItems = new ObservableCollection<OutputInvoiceSubItemViewModel>();
            //}

            return(outputInvoiceViewModel);
        }
コード例 #26
0
        public static FacREAList GetNoCobradas()
        {
            CriteriaEx criteria = OutputInvoice.GetCriteria(OutputInvoice.OpenSession());

            criteria.Childs = false;

            if (nHManager.Instance.UseDirectSQL)
            {
                criteria.Query = FacREAList.SELECT_NO_COBRADAS();
            }

            FacREAList list = DataPortal.Fetch <FacREAList>(criteria);

            CloseSession(criteria.SessionCode);
            return(list);
        }
コード例 #27
0
        public OutputInvoice Delete(Guid identifier)
        {
            // Load OutputInvoice that will be deleted
            OutputInvoice dbEntry = context.OutputInvoices
                                    .FirstOrDefault(x => x.Identifier == identifier && x.Active == true);

            if (dbEntry != null)
            {
                // Set activity
                dbEntry.Active = false;
                // Set timestamp
                dbEntry.UpdatedAt = DateTime.Now;
            }

            return(dbEntry);
        }
コード例 #28
0
        public static REAResumen Get(Expedient expediente)
        {
            CriteriaEx criteria = OutputInvoice.GetCriteria(OutputInvoice.OpenSession());

            if (nHManager.Instance.UseDirectSQL)
            {
                criteria.Query = REAResumen.SELECT(expediente);
            }

            OutputInvoice.BeginTransaction(criteria.Session);

            REAResumen obj = DataPortal.Fetch <REAResumen>(criteria);

            OutputInvoice.CloseSession(criteria.SessionCode);
            return(obj);
        }
コード例 #29
0
        public OutputInvoice SetInvoiceStatus(int id, int status)
        {
            OutputInvoice dbEntry = context.OutputInvoices
                                    .FirstOrDefault(x => x.Id == id && x.Active == true);

            if (dbEntry != null)
            {
                // Set status
                //dbEntry.Status = status;

                // Set timestamp
                dbEntry.UpdatedAt = DateTime.Now;
            }

            return(dbEntry);
        }
コード例 #30
0
        public static FacREAList GetListByCobro(long oid_cobro)
        {
            CriteriaEx criteria = OutputInvoice.GetCriteria(OutputInvoice.OpenSession());

            criteria.Childs = false;

            //No criteria. Retrieve all de List
            if (nHManager.Instance.UseDirectSQL)
            {
                criteria.Query = FacREAList.SELECT_BY_COBRO(oid_cobro);
            }

            FacREAList list = DataPortal.Fetch <FacREAList>(criteria);

            CloseSession(criteria.SessionCode);
            return(list);
        }