Exemple #1
0
        public void SetDefaultInvoiceName()
        {
            InvoiceEntities entity     = (InvoiceEntities)CurrentModuleEntity;
            ARInvoicesInfo  mainObject = (ARInvoicesInfo)entity.MainObject;

            if (!String.IsNullOrWhiteSpace(mainObject.ARInvoiceName))
            {
                return;
            }

            if (mainObject.FK_ARCustomerID == 0)
            {
                return;
            }

            if (mainObject.FK_ARSaleOrderID == 0)
            {
                return;
            }

            ARSaleOrdersController objSaleOrdersController = new ARSaleOrdersController();
            ARSaleOrdersInfo       objSaleOrdersInfo       = objSaleOrdersController.GetObjectByID(mainObject.FK_ARSaleOrderID) as ARSaleOrdersInfo;

            if (objSaleOrdersInfo == null)
            {
                return;
            }

            mainObject.ARInvoiceName = string.Format("Hóa đơn bán hàng của {0} cho đơn bán hàng {1}", mainObject.ARInvoiceCustomerName, objSaleOrdersInfo.ARSaleOrderNo);
        }
Exemple #2
0
        public void ChangeCustomer(int customerID)
        {
            if (Toolbar.IsNullOrNoneAction() || customerID <= 0)
            {
                return;
            }

            SaleOrderEntities     entity                 = (SaleOrderEntities)CurrentModuleEntity;
            ARSaleOrdersInfo      mainObject             = (ARSaleOrdersInfo)CurrentModuleEntity.MainObject;
            ARCustomersController objCustomersController = new ARCustomersController();
            ARCustomersInfo       objCustomersInfo       = objCustomersController.GetObjectByID(customerID) as ARCustomersInfo;

            if (objCustomersInfo == null)
            {
                return;
            }
            if (objCustomersInfo.ARCustomerActiveCheck == false)
            {
                MessageBox.Show("Khách hàng này đã bỏ hoạt động!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
            mainObject.FK_ARCustomerID                    = customerID;
            mainObject.ARSaleOrderCustomerName            = objCustomersInfo.ARCustomerName;
            mainObject.ARSaleOrderCustomerPhone           = string.IsNullOrEmpty(objCustomersInfo.ARCustomerContactPhone1) ? (string.IsNullOrEmpty(objCustomersInfo.ARCustomerContactPhone2) ? string.Empty : objCustomersInfo.ARCustomerContactPhone2) : objCustomersInfo.ARCustomerContactPhone1;
            mainObject.FK_GECurrencyID                    = objCustomersInfo.FK_GECurrencyID;
            mainObject.FK_GEPaymentTermID                 = objCustomersInfo.FK_GEPaymentTermID;
            mainObject.ARSaleOrderPaymentMethodType       = string.IsNullOrEmpty(objCustomersInfo.ARCustomerPaymentMethod) ? string.Empty : objCustomersInfo.ARCustomerPaymentMethod;
            mainObject.ARSaleOrderCustomerTaxCode         = objCustomersInfo.ARCustomerTaxNumber;
            mainObject.ARSaleOrderCustomerAddress         = objCustomersInfo.ARCustomerContactAddress;
            mainObject.ARSaleOrderCustomerDeliveryName    = objCustomersInfo.ARCustomerName;
            mainObject.ARSaleOrderCustomerDeliveryPhone   = mainObject.ARSaleOrderCustomerPhone;
            mainObject.ARSaleOrderCustomerDeliveryAddress = mainObject.ARSaleOrderCustomerAddress;
            mainObject.ARSaleOrderCustomerDeliveryAddress = mainObject.ARSaleOrderCustomerAddress;
            entity.UpdateMainObjectBindingSource();
        }
Exemple #3
0
        public void SetDefaultShipmentName()
        {
            SaleOrderShipmentEntities entity     = CurrentModuleEntity as SaleOrderShipmentEntities;
            ICShipmentsInfo           mainObject = entity.MainObject as ICShipmentsInfo;

            if (!String.IsNullOrWhiteSpace(mainObject.ICShipmentName))
            {
                return;
            }

            if (mainObject.FK_ARSaleOrderID == 0)
            {
                return;
            }

            ARSaleOrdersController objSaleOrdersController = new ARSaleOrdersController();
            ARSaleOrdersInfo       objSaleOrdersInfo       = objSaleOrdersController.GetObjectByID(mainObject.FK_ARSaleOrderID) as ARSaleOrdersInfo;

            if (objSaleOrdersInfo == null)
            {
                return;
            }

            mainObject.ICShipmentName = string.Format("Chứng từ xuất kho của đơn bán hàng {0}", objSaleOrdersInfo.ARSaleOrderNo);
        }
Exemple #4
0
        public bool IsValidInventoryStockQty(List <ARSaleOrderItemsInfo> saleOrderItemList)
        {
            bool                        isValid    = true;
            ARSaleOrdersInfo            mainObject = (ARSaleOrdersInfo)CurrentModuleEntity.MainObject;
            List <ARSaleOrderItemsInfo> mergeList  = MergeSaleOrderItemSameProduct(saleOrderItemList);
            ICTransactionsController    objTransactionsController = new ICTransactionsController();
            decimal                     inventoryStockQty         = 0;
            List <string>               errorMessagesList         = new List <string>();

            mergeList.ForEach(o =>
            {
                inventoryStockQty = objTransactionsController.GetAvailabilityQtyForSale(o.FK_ICProductID, o.FK_ICStockID, o.ARSaleOrderItemStockLotNo, mainObject.ARSaleOrderDate);
                if (inventoryStockQty >= o.ARSaleOrderItemProductQty)
                {
                    return;
                }

                errorMessagesList.Add(string.Format("Sản phẩm {0} không đủ tồn kho. Vui lòng kiểm tra lại!", o.ARSaleOrderItemProductNo));
            });
            if (errorMessagesList.Count() > 0)
            {
                GuiErrorMessage guiErrorMessage = new GuiErrorMessage(errorMessagesList);
                guiErrorMessage.Module = this;
                guiErrorMessage.ShowDialog();
                return(false);
            }
            return(isValid);
        }
Exemple #5
0
        public void ActionNewFromProposal()
        {
            ActionNew();
            SaleOrderEntities      entity                 = (SaleOrderEntities)CurrentModuleEntity;
            ARSaleOrdersInfo       mainObject             = (ARSaleOrdersInfo)entity.MainObject;
            ARProposalsController  objProposalsController = new ARProposalsController();
            List <ARProposalsInfo> proposalList           = objProposalsController.GetAllProposalForOderring();
            guichooseProposal      guiFind                = new guichooseProposal(proposalList);

            guiFind.Module = this;
            guiFind.ShowDialog();
            if (guiFind.DialogResult != DialogResult.OK)
            {
                return;
            }
            ARProposalsInfo objProposalsInfo = (ARProposalsInfo)guiFind.SelectedObjects[0];

            if (objProposalsInfo != null)
            {
                mainObject.FK_ARCustomerID              = objProposalsInfo.FK_ARCustomerID;
                mainObject.FK_ARProposalID              = objProposalsInfo.ARProposalID;
                mainObject.FK_GECurrencyID              = objProposalsInfo.FK_GECurrencyID;
                mainObject.ARSaleOrderDesc              = objProposalsInfo.ARProposalDesc;
                mainObject.ARSaleOrderExchangeRate      = objProposalsInfo.ARProposalExchangeRate;
                mainObject.ARSaleOrderPaymentMethodType = objProposalsInfo.ARProposalPaymentMethod;
                mainObject.ARSaleOrderSubTotalAmount    = objProposalsInfo.ARProposalSubTotalAmount;
                mainObject.ARSaleOrderDiscountPercent   = objProposalsInfo.ARProposalDiscountPerCent;
                mainObject.ARSaleOrderDiscountAmount    = objProposalsInfo.ARProposalDiscountAmount;
                mainObject.ARSaleOrderTaxPercent        = objProposalsInfo.ARProposalTaxPercent;
                mainObject.ARSaleOrderTaxAmount         = objProposalsInfo.ARProposalTaxAmount;
                mainObject.ARSaleOrderTotalAmount       = objProposalsInfo.ARProposalTotalAmount;
            }
            proposalList.Clear();
            proposalList = (List <ARProposalsInfo>)guiFind.SelectedObjects;
            proposalList.ForEach(o =>
            {
                ARProposalItemsController objProposalItemsController = new ARProposalItemsController();
                List <ARProposalItemsInfo> proposalItems             = objProposalItemsController.GetAllItemByProopsalID(o.ARProposalID);
                proposalItems.ForEach(p =>
                {
                    ARSaleOrderItemsInfo objSaleOrderItemsInfo            = new ARSaleOrderItemsInfo();
                    objSaleOrderItemsInfo.FK_ICProductID                  = p.FK_ICProductID;
                    objSaleOrderItemsInfo.FK_ICMeasureUnitID              = p.FK_ICMeasureUnitID;
                    objSaleOrderItemsInfo.ARSaleOrderItemProductNo        = p.ARProposalItemProductNo;
                    objSaleOrderItemsInfo.ARSaleOrderItemProductName      = p.ARProposalItemProductName;
                    objSaleOrderItemsInfo.ARSaleOrderItemProductDesc      = p.ARProposalItemDesc;
                    objSaleOrderItemsInfo.ARSaleOrderItemProductUnitPrice = p.ARProposalItemPrice;
                    objSaleOrderItemsInfo.ARSaleOrderItemProductQty       = p.ARProposalItemQty;
                    objSaleOrderItemsInfo.ARSaleOrderItemDiscountPercent  = p.ARProposalItemDiscountPercent;
                    objSaleOrderItemsInfo.ARSaleOrderItemDiscountAmount   = p.ARProposalItemDiscountAmount;
                    objSaleOrderItemsInfo.ARSaleOrderItemTaxPercent       = p.ARProposalItemTaxPercent;
                    objSaleOrderItemsInfo.ARSaleOrderItemTaxAmount        = p.ARProposalItemTaxAmount;
                    objSaleOrderItemsInfo.ARSaleOrderItemTotalAmount      = p.ARProposalItemTotalAmount;
                    entity.SaleOrderItemsList.Add(objSaleOrderItemsInfo);
                });
            });
            ChangeCustomer(mainObject.FK_ARCustomerID);
            entity.UpdateMainObjectBindingSource();
            entity.SaleOrderItemsList.GridControl.RefreshDataSource();
        }
Exemple #6
0
        public override void ActionApproved()
        {
            base.ActionApproved();
            SaleOrderEntities           entity                = (SaleOrderEntities)CurrentModuleEntity;
            List <ARSaleOrderItemsInfo> invetoryCheckList     = new List <ARSaleOrderItemsInfo>();
            ICProductsController        objProductsController = new ICProductsController();
            ICProductsInfo objProductsInfo = new ICProductsInfo();

            entity.SaleOrderItemsList.ForEach(o =>
            {
                objProductsInfo = (ICProductsInfo)objProductsController.GetObjectByID(o.FK_ICProductID);
                if (objProductsInfo == null)
                {
                    return;
                }

                if (o.ARSaleOrderItemGrantedFrom == ProductGrantedFrom.Inventory)
                {
                    invetoryCheckList.Add((ARSaleOrderItemsInfo)o.Clone());
                }
            });
            if (!IsValidInventoryStockQty(invetoryCheckList))
            {
                return;
            }
            ARSaleOrdersInfo       mainObject = (ARSaleOrdersInfo)entity.MainObject;
            ARSaleOrdersController objSaleOrdersController = new ARSaleOrdersController();

            mainObject.ARSaleOrderStatus = "Approved";
            entity.UpdateMainObject();
            GLHelper.PostedTransactions(CurrentModuleName, mainObject.ARSaleOrderID, ModulePostingType.SaleOrder);
            InvalidateToolbar();
        }
Exemple #7
0
        public void UpdateTotalAmount()
        {
            SaleOrderEntities entity     = (SaleOrderEntities)CurrentModuleEntity;
            ARSaleOrdersInfo  mainObject = (ARSaleOrdersInfo)CurrentModuleEntity.MainObject;

            entity.UpdateTotalAmount();
            GeneratePaymentTime(mainObject.FK_GEPaymentTermID);
        }
Exemple #8
0
        public void InitializeSaleOrderReport(ARSaleOrder report)
        {
            SaleOrderEntities           entity     = (SaleOrderEntities)CurrentModuleEntity;
            ARSaleOrdersInfo            mainObject = (ARSaleOrdersInfo)entity.MainObject;
            ARSaleOrderItemsController  objSaleOrderItemsController = new ARSaleOrderItemsController();
            List <ARSaleOrderItemsInfo> soItemList = objSaleOrderItemsController.GetItemForSaleOrderReport(mainObject.ARSaleOrderID);

            report.bsARSaleOrderItems.DataSource = soItemList;
        }
Exemple #9
0
        public void NewFromSaleOrder()
        {
            base.ActionNew();
            SaleOrderShipmentEntities entity     = CurrentModuleEntity as SaleOrderShipmentEntities;
            ICShipmentsInfo           mainobject = entity.MainObject as ICShipmentsInfo;

            ARSaleOrderItemsController  objSaleOrderItemsController = new ARSaleOrderItemsController();
            List <ARSaleOrderItemsInfo> saleOrderItems = objSaleOrderItemsController.GetSaleOrderItemForSaleOrderShipment();

            guiChooseSaleOrderItem guiFind = new guiChooseSaleOrderItem(saleOrderItems);

            guiFind.Module = this;
            DialogResult rs = guiFind.ShowDialog();

            if (rs != DialogResult.OK)
            {
                ActionCancel();
                return;
            }
            saleOrderItems = guiFind.SelectedObjects;
            ARSaleOrderItemsInfo objSaleOrderItemsInfo = saleOrderItems.FirstOrDefault();

            if (objSaleOrderItemsInfo == null)
            {
                objSaleOrderItemsInfo = new ARSaleOrderItemsInfo();
            }

            ARSaleOrdersController objSaleOrdersController = new ARSaleOrdersController();
            ARSaleOrdersInfo       objSaleOrdersInfo       = (ARSaleOrdersInfo)objSaleOrdersController.GetObjectByID(objSaleOrderItemsInfo.FK_ARSaleOrderID);

            if (objSaleOrdersInfo == null)
            {
                objSaleOrdersInfo = new ARSaleOrdersInfo();
            }

            mainobject.FK_ARSaleOrderID          = objSaleOrdersInfo.ARSaleOrderID;
            mainobject.FK_ARCustomerID           = objSaleOrdersInfo.FK_ARCustomerID;
            mainobject.ICShipmentDiscountPercent = objSaleOrdersInfo.ARSaleOrderDiscountPercent;
            mainobject.ICShipmentTaxPercent      = objSaleOrdersInfo.ARSaleOrderTaxPercent;
            mainobject.FK_GECurrencyID           = objSaleOrdersInfo.FK_GECurrencyID;
            mainobject.ICShipmentExchangeRate    = objSaleOrdersInfo.ARSaleOrderExchangeRate;
            mainobject.ICShipmentDeliveryDate    = objSaleOrdersInfo.ARSaleOrderDeliveryDate;
            List <ICShipmentItemsInfo> shipmentItemList     = new List <ICShipmentItemsInfo>();
            ICShipmentItemsInfo        objShipmentItemsInfo = new ICShipmentItemsInfo();

            saleOrderItems.ForEach(o =>
            {
                objShipmentItemsInfo = new ICShipmentItemsInfo();
                objShipmentItemsInfo = o.ToShipmentItem();
                shipmentItemList.Add(objShipmentItemsInfo);
            });
            entity.ShipmentItemsList.Invalidate(shipmentItemList);
            entity.UpdateMainObjectBindingSource();
            entity.UpdateTotalAmount();
        }
Exemple #10
0
        public override void SetDefaultMainObject()
        {
            base.SetDefaultMainObject();
            ARSaleOrdersInfo mainObject = (ARSaleOrdersInfo)MainObject;

            mainObject.ARSaleOrderDate         = DateTime.Now;
            mainObject.ARSaleOrderDeliveryDate = DateTime.Now;
            mainObject.FK_HREmployeeID         = VinaApp.CurrentUserInfo.FK_HREmployeeID;

            UpdateMainObjectBindingSource();
        }
Exemple #11
0
        public void ChangeCurrency(int currencyID)
        {
            SaleOrderEntities entity     = (SaleOrderEntities)CurrentModuleEntity;
            ARSaleOrdersInfo  mainObject = (ARSaleOrdersInfo)entity.MainObject;

            mainObject.FK_GECurrencyID = currencyID;
            GECurrenciesInfo objCurrenciesInfo = VinaApp.CurrencyList.Where(o => o.GECurrencyID == currencyID).FirstOrDefault();

            mainObject.ARSaleOrderExchangeRate = objCurrenciesInfo == null ? 1 : objCurrenciesInfo.GECurrencyTransferRate;
            entity.UpdateMainObjectBindingSource();
            ChangeExchangeRate();
        }
Exemple #12
0
        public void ChangeDiscountAmount()
        {
            SaleOrderEntities entity     = (SaleOrderEntities)CurrentModuleEntity;
            ARSaleOrdersInfo  mainObject = (ARSaleOrdersInfo)entity.MainObject;

            if (mainObject.ARSaleOrderSubTotalAmount != 0)
            {
                mainObject.ARSaleOrderDiscountPercent = 100 * mainObject.ARSaleOrderDiscountAmount / mainObject.ARSaleOrderSubTotalAmount;
            }
            else
            {
                mainObject.ARSaleOrderDiscountPercent = 0;
            }
            mainObject.ARSaleOrderDiscountPercent = Math.Round(mainObject.ARSaleOrderDiscountPercent, 2, MidpointRounding.AwayFromZero);
            UpdateTotalAmount();
        }
Exemple #13
0
        public void SaleOrderPaymentMethod(string paymentMethod)
        {
            if (Toolbar.IsNullOrNoneAction())
            {
                return;
            }

            SaleOrderEntities entity     = (SaleOrderEntities)CurrentModuleEntity;
            ARSaleOrdersInfo  mainObject = (ARSaleOrdersInfo)entity.MainObject;

            entity.SaleOrderPaymentTimeList.ForEach(o =>
            {
                o.ARSaleOrderPaymentTimePaymentMethod = mainObject.ARSaleOrderPaymentMethodType;
            });
            entity.SaleOrderPaymentTimeList.GridControl.RefreshDataSource();
        }
Exemple #14
0
        public void ActionNewFromSaleOrederShipment()
        {
            base.ActionNew();
            InvoiceEntities entity     = CurrentModuleEntity as InvoiceEntities;
            ARInvoicesInfo  mainObject = entity.MainObject as ARInvoicesInfo;

            ICShipmentItemsController  objShipmentItemsController = new ICShipmentItemsController();
            List <ICShipmentItemsInfo> shipmentItems = objShipmentItemsController.GetShipmentItemForInvoice();

            guiChooseShipmentItem guiFind = new guiChooseShipmentItem(shipmentItems);

            guiFind.Module = this;
            DialogResult rs = guiFind.ShowDialog();

            if (rs != DialogResult.OK)
            {
                ActionCancel();
                return;
            }
            shipmentItems = guiFind.SelectedObjects as List <ICShipmentItemsInfo>;

            ICShipmentItemsInfo    objShipmentItemsInfo    = shipmentItems.FirstOrDefault();
            ARSaleOrdersController objSaleOrdersController = new ARSaleOrdersController();
            ARSaleOrdersInfo       objSaleOrdersInfo       = objSaleOrdersController.GetObjectByID(objShipmentItemsInfo.FK_ARSaleOrderID) as ARSaleOrdersInfo;

            mainObject.FK_ARSaleOrderID                 = objSaleOrdersInfo.ARSaleOrderID;
            mainObject.ARInvoiceCustomerAddress         = objSaleOrdersInfo.ARSaleOrderCustomerAddress;
            mainObject.ARInvoiceCustomerDeliveryAddress = objSaleOrdersInfo.ARSaleOrderCustomerDeliveryAddress;
            mainObject.ARInvoiceCustomerDeliveryName    = objSaleOrdersInfo.ARSaleOrderCustomerDeliveryName;
            mainObject.ARInvoiceCustomerDeliveryPhone   = objSaleOrdersInfo.ARSaleOrderCustomerDeliveryPhone;
            mainObject.ARInvoiceCustomerName            = objSaleOrdersInfo.ARSaleOrderCustomerName;
            mainObject.ARInvoiceCustomerPhone           = objSaleOrdersInfo.ARSaleOrderCustomerPhone;
            mainObject.ARInvoiceCustomerTaxCode         = objSaleOrdersInfo.ARSaleOrderCustomerTaxCode;
            mainObject.ARInvoiceDiscountPercent         = objSaleOrdersInfo.ARSaleOrderDiscountPercent;
            mainObject.ARInvoiceTaxPercent              = objSaleOrdersInfo.ARSaleOrderTaxPercent;
            mainObject.ARInvoiceExchangeRate            = objSaleOrdersInfo.ARSaleOrderExchangeRate;
            mainObject.ARInvoiceDeliveryDate            = objSaleOrdersInfo.ARSaleOrderDeliveryDate;
            mainObject.ARInvoiceInternalComment         = objSaleOrdersInfo.ARSaleOrderInternalComment;
            mainObject.ARInvoiceComment                 = objSaleOrdersInfo.ARSaleOrderComment;
            mainObject.FK_GECurrencyID       = objSaleOrdersInfo.FK_GECurrencyID;
            mainObject.FK_ARCustomerID       = objSaleOrdersInfo.FK_ARCustomerID;
            mainObject.FK_HRSellerEmployeeID = objSaleOrdersInfo.FK_HRSellerEmployeeID;

            entity.GenerateInvoiceItemList(shipmentItems);
            UpdateTotalAmount();
            entity.UpdateMainObjectBindingSource();
        }
Exemple #15
0
        public void SetDefaultSaleOrderName()
        {
            SaleOrderEntities entity     = (SaleOrderEntities)CurrentModuleEntity;
            ARSaleOrdersInfo  mainObject = (ARSaleOrdersInfo)CurrentModuleEntity.MainObject;

            if (!String.IsNullOrWhiteSpace(mainObject.ARSaleOrderName))
            {
                return;
            }

            if (mainObject.FK_ARCustomerID == 0)
            {
                return;
            }

            mainObject.ARSaleOrderName = string.Format("Bán hàng cho {0}", mainObject.ARSaleOrderCustomerName);
        }
Exemple #16
0
        public void UpdateTotalAmount()
        {
            ARSaleOrdersInfo mainObject = (ARSaleOrdersInfo)MainObject;

            mainObject.ARSaleOrderSubTotalAmount = SaleOrderItemsList.Sum(o => o.ARSaleOrderItemTotalAmount);
            VinaApp.RoundByCurrency(mainObject, "ARSaleOrderSubTotalAmount", mainObject.FK_GECurrencyID);

            mainObject.ARSaleOrderDiscountAmount = mainObject.ARSaleOrderDiscountPercent / 100 * mainObject.ARSaleOrderSubTotalAmount;
            VinaApp.RoundByCurrency(mainObject, "ARSaleOrderDiscountAmount", mainObject.FK_GECurrencyID);

            mainObject.ARSaleOrderTaxAmount = mainObject.ARSaleOrderTaxPercent / 100 * (mainObject.ARSaleOrderSubTotalAmount - mainObject.ARSaleOrderDiscountAmount);
            VinaApp.RoundByCurrency(mainObject, "ARSaleOrderTaxAmount", mainObject.FK_GECurrencyID);

            mainObject.ARSaleOrderTotalAmount = mainObject.ARSaleOrderSubTotalAmount - mainObject.ARSaleOrderDiscountAmount + mainObject.ARSaleOrderTaxAmount;
            VinaApp.RoundByCurrency(mainObject, "ARSaleOrderTotalAmount", mainObject.FK_GECurrencyID);

            UpdateMainObjectBindingSource();
        }
Exemple #17
0
        public override void InvalidateToolbar()
        {
            base.InvalidateToolbar();
            SaleOrderEntities entity     = (SaleOrderEntities)CurrentModuleEntity;
            ARSaleOrdersInfo  mainObject = (ARSaleOrdersInfo)entity.MainObject;

            ParentScreen.SetEnableOfToolbarButton("Approved", false);
            ParentScreen.SetEnableOfToolbarButton(BaseToolbar.ToolbarButtonEdit, true);
            if (mainObject.ARSaleOrderID > 0)
            {
                ParentScreen.SetEnableOfToolbarButton("Approved", true);
                if (mainObject.ARSaleOrderStatus == "Approved")
                {
                    ParentScreen.SetEnableOfToolbarButton(BaseToolbar.ToolbarButtonEdit, false);
                    ParentScreen.SetEnableOfToolbarButton("Approved", false);
                }
            }
        }
Exemple #18
0
        public void ChangeExchangeRate()
        {
            SaleOrderEntities entity     = (SaleOrderEntities)CurrentModuleEntity;
            ARSaleOrdersInfo  mainObject = (ARSaleOrdersInfo)entity.MainObject;

            entity.SaleOrderItemsList.ForEach(o =>
            {
                if (mainObject.ARSaleOrderExchangeRate != 0)
                {
                    o.ARSaleOrderItemProductUnitPrice = o.ARSaleOrderItemProductBasicPrice / mainObject.ARSaleOrderExchangeRate;
                }
                else
                {
                    o.ARSaleOrderItemProductUnitPrice = 0;
                }

                ChangeItemFromSaleOrderItemsList(o);
            });
            entity.SaleOrderItemsList.GridControl.RefreshDataSource();
            UpdateTotalAmount();
        }
Exemple #19
0
        public void ChangeTaxAmount()
        {
            if (Toolbar.IsNullOrNoneAction())
            {
                return;
            }

            SaleOrderEntities entity     = (SaleOrderEntities)CurrentModuleEntity;
            ARSaleOrdersInfo  mainObject = (ARSaleOrdersInfo)entity.MainObject;

            if (mainObject.ARSaleOrderSubTotalAmount - mainObject.ARSaleOrderDiscountAmount != 0)
            {
                mainObject.ARSaleOrderTaxPercent = 100 * mainObject.ARSaleOrderTaxAmount / (mainObject.ARSaleOrderSubTotalAmount - mainObject.ARSaleOrderDiscountAmount);
            }
            else
            {
                mainObject.ARSaleOrderTaxPercent = 0;
            }
            mainObject.ARSaleOrderTaxPercent = Math.Round(mainObject.ARSaleOrderTaxPercent, 2, MidpointRounding.AwayFromZero);
            UpdateTotalAmount();
        }
Exemple #20
0
        public override int ActionSave()
        {
            SaleOrderEntities entity     = (SaleOrderEntities)CurrentModuleEntity;
            ARSaleOrdersInfo  mainObject = (ARSaleOrdersInfo)CurrentModuleEntity.MainObject;

            SetDefaultSaleOrderName();
            List <string> errorList = new List <string>();

            if (mainObject.FK_ARCustomerID == 0)
            {
                errorList.Add("Khách hàng không được để trống!");
            }
            if (mainObject.FK_GEPaymentTermID == 0)
            {
                errorList.Add("Điều khoản thanh toán không được bỏ trống!");
            }
            if (string.IsNullOrWhiteSpace(mainObject.ARSaleOrderPaymentMethodType))
            {
                errorList.Add("Phương thức thanh toán không được bỏ trống!");
            }
            if (mainObject.FK_GECurrencyID == 0 || mainObject.ARSaleOrderExchangeRate == 0)
            {
                errorList.Add("Vui lòng chọn loại tiền tề và tỷ giá!");
            }
            entity.SaleOrderItemsList.ForEach(o =>
            {
                if (o.ARSaleOrderItemGrantedFrom == ProductGrantedFrom.Inventory && o.FK_ICStockID == 0)
                {
                    errorList.Add("Vui lòng chọn kho cho sản phẩm có mã: " + o.ARSaleOrderItemProductNo);
                }
            });
            if (errorList.Count() > 0)
            {
                GuiErrorMessage guiError = new GuiErrorMessage(errorList);
                guiError.Module = this;
                guiError.ShowDialog();
                return(0);
            }
            return(base.ActionSave());
        }
Exemple #21
0
 public override void InitMainObject()
 {
     MainObject   = new ARSaleOrdersInfo();
     SearchObject = new ARSaleOrdersInfo();
 }
Exemple #22
0
        public void GeneratePaymentTime(int paymentTermID)
        {
            if (Toolbar.IsNullOrNoneAction())
            {
                return;
            }

            SaleOrderEntities entity     = (SaleOrderEntities)CurrentModuleEntity;
            ARSaleOrdersInfo  mainObject = (ARSaleOrdersInfo)entity.MainObject;

            GEPaymentTermsController objPaymentTermsController = new GEPaymentTermsController();
            GEPaymentTermsInfo       objPaymentTermsInfo       = objPaymentTermsController.GetObjectByID(paymentTermID) as GEPaymentTermsInfo;

            if (objPaymentTermsInfo == null)
            {
                return;
            }

            GEPaymentTermItemsController  objPaymentTermItemsController = new GEPaymentTermItemsController();
            List <GEPaymentTermItemsInfo> paymentTermItems = objPaymentTermItemsController.GetListItemByPaymentTermID(paymentTermID);

            if (paymentTermItems.Count() <= 0)
            {
                return;
            }

            mainObject.FK_GEPaymentTermID = paymentTermID;
            if (entity.SaleOrderPaymentTimeList.Count() > 0)
            {
                entity.SaleOrderPaymentTimeList.Clear();
            }

            if (mainObject.ARSaleOrderTotalAmount == 0)
            {
                return;
            }

            ARSaleOrderPaymentTimesInfo objPayment;

            paymentTermItems.ForEach(o =>
            {
                objPayment = new ARSaleOrderPaymentTimesInfo();
                objPayment.ARSaleOrderPaymentTimePaymentType = o.GEPaymentTermItemPaymentType;
                objPayment.ARSaleOrderPaymentTimeStatus      = "New";
                objPayment.ARSaleOrderPaymentTimeAmount      = mainObject.ARSaleOrderTotalAmount * o.GEPaymentTermItemPaymentPercent / 100;
                objPayment.ARSaleOrderPaymentTimeDueAmount   = mainObject.ARSaleOrderTotalAmount * o.GEPaymentTermItemPaymentPercent / 100;
                objPayment.FK_GEPaymentTermID = paymentTermID;
                objPayment.ARSaleOrderPaymentTimePaymentMethod = mainObject.ARSaleOrderPaymentMethodType;
                objPayment.FK_ARSaleOrderID = mainObject.ARSaleOrderID;
                objPayment.ARSaleOrderPaymentTimePaymentTermItemPaymentTime    = o.GEPaymentTermItemPaymentTime;
                objPayment.ARSaleOrderPaymentTimePaymentTermItemDay            = o.GEPaymentTermItemDay;
                objPayment.ARSaleOrderPaymentTimePaymentTermItemPercentPayment = o.GEPaymentTermItemPaymentPercent;
                objPayment.ARSaleOrderPaymentTimePaymentTermItemPaymentType    = o.GEPaymentTermItemPaymentType;
                objPayment.ARSaleOrderPaymentTimePaymentTermItemType           = o.GEPaymentTermItemPaymentType;
                objPayment.FK_GEPaymentTermItemID = o.GEPaymentTermItemID;
                if (o.GEPaymentTermItemPaymentTime == "IsContract")
                {
                    if (mainObject.ARSaleOrderDate.Date != DateTime.MaxValue.Date && mainObject.ARSaleOrderDate.Date != DateTime.MinValue.Date)
                    {
                        objPayment.ARSaleOrderPaymentTimeDate    = mainObject.ARSaleOrderDate;
                        objPayment.ARSaleOrderPaymentTimeDueDate = mainObject.ARSaleOrderDate;
                    }
                }
                if (o.GEPaymentTermItemPaymentTime == "IsBeforeDelivery")
                {
                    if (mainObject.ARSaleOrderDeliveryDate.Date != DateTime.MaxValue.Date && mainObject.ARSaleOrderDeliveryDate.Date != DateTime.MinValue.Date)
                    {
                        objPayment.ARSaleOrderPaymentTimeDate    = mainObject.ARSaleOrderDeliveryDate.AddDays(-o.GEPaymentTermItemDay);
                        objPayment.ARSaleOrderPaymentTimeDueDate = mainObject.ARSaleOrderDeliveryDate.AddDays(-o.GEPaymentTermItemDay);
                    }
                }
                if (o.GEPaymentTermItemPaymentTime == "IsAfterDelivery")
                {
                    if (mainObject.ARSaleOrderDeliveryDate.Date != DateTime.MaxValue.Date && mainObject.ARSaleOrderDeliveryDate.Date != DateTime.MinValue.Date)
                    {
                        objPayment.ARSaleOrderPaymentTimeDate    = mainObject.ARSaleOrderDeliveryDate.AddDays(o.GEPaymentTermItemDay);
                        objPayment.ARSaleOrderPaymentTimeDueDate = mainObject.ARSaleOrderDeliveryDate.AddDays(o.GEPaymentTermItemDay);
                    }
                }
                if (o.GEPaymentTermItemPaymentTime == "IsSaleOrder")
                {
                    if (mainObject.ARSaleOrderDeliveryDate.Date != DateTime.MaxValue.Date && mainObject.ARSaleOrderDeliveryDate.Date != DateTime.MinValue.Date)
                    {
                        objPayment.ARSaleOrderPaymentTimeDate    = mainObject.ARSaleOrderDeliveryDate.AddDays(o.GEPaymentTermItemDay);
                        objPayment.ARSaleOrderPaymentTimeDueDate = mainObject.ARSaleOrderDeliveryDate.AddDays(o.GEPaymentTermItemDay);
                    }
                }
                VinaApp.RoundByCurrency(objPayment, mainObject.FK_GECurrencyID);
                entity.SaleOrderPaymentTimeList.Add(objPayment);
                entity.SaleOrderPaymentTimeList.GridControl.RefreshDataSource();
            });
        }