示例#1
0
        public void GetMarkUpdata(bool header)
        {
            var client =
                new WarehouseService.WarehouseServiceClient();

            TransactionHeader.MarkUpTransList.Clear();
            client.GetTblSalesOrderRequestInvoiceMarkupTransProdAsync(0, TransactionHeader.Iserial, LoggedUserInfo.DatabasEname);
            client.GetTblSalesOrderRequestInvoiceMarkupTransProdCompleted += (s, sv) =>
            {
                foreach (var row in sv.Result)
                {
                    var newrow = new TblMarkupTranProdViewModel();
                    newrow.InjectFrom(row);
                    newrow.CurrencyPerRow = new CRUDManagerService.GenericTable();
                    newrow.CurrencyPerRow.InjectFrom(CurrencyList.FirstOrDefault(w => w.Iserial == newrow.TblCurrency));
                    newrow.TblMarkupProd1 = new CRUDManagerService.TblMarkupProd();
                    newrow.TblMarkupProd1.InjectFrom(MarkupList.FirstOrDefault(w => w.Iserial == row.TblMarkupProd));
                    newrow.JournalAccountTypePerRow = JournalAccountTypeList.FirstOrDefault(w => w.Iserial == newrow.TblJournalAccountType);
                    newrow.EntityPerRow             = new GlService.Entity().InjectFrom(sv.entityList.FirstOrDefault(w => w.Iserial == row.EntityAccount && w.TblJournalAccountType == row.TblJournalAccountType)) as GlService.Entity;
                    newrow.TblJournalAccountType    = row.TblJournalAccountType;
                    newrow.EntityAccount            = row.EntityAccount;

                    TransactionHeader.MarkUpTransList.Add(newrow);
                }

                Loading = false;

                if (TransactionHeader.MarkUpTransList.Count == 0)
                {
                    AddNewMarkUpRow(false, true);
                }
            };

            Loading = true;
        }
        public void FillPaySaleRules(SalesRules PaysalesRules)
        {
            //   SalesRulesRepo repo = new SalesRulesRepo();
            //salesRules = repo.GetSalesRules(Category, POS, ServiceType);
            for (int i = 0; i < PaysalesRules.MarkupList.Count; i++)
            {
                MarkUp markUp = new MarkUp()
                {
                    CommAmt         = PaysalesRules.MarkupList[i].commAmount,
                    ID              = PaysalesRules.MarkupList[i].ID,
                    MarkupPriority  = PaysalesRules.MarkupList[i].Priority,
                    CommRound       = PaysalesRules.MarkupList[i].commRound,
                    CommRelatedUnit = PaysalesRules.MarkupList[i].commRelatedUnit,
                    CommType        = PaysalesRules.MarkupList[i].commType,
                    markupbase      = PaysalesRules.MarkupList[i].Base,
                    markupname      = PaysalesRules.MarkupList[i].Name,
                };
                markUp.MarkupCriterias = PaysalesRules.MarkupList[i].CriteriaList.Select(a => new MarkupCriteria()
                {
                    criterianame      = a.criteriaName,
                    criteriavalue     = a.value,
                    operation         = a.operation,
                    markupid          = PaysalesRules.MarkupList[i].ID.ToString(),
                    CriteriaValueText = a.textValue
                }).ToList();
                MarkupList.Add(markUp);
            }

            /* for (int i = 0; i < salesRules.DiscountList.Count; i++)
             * {
             *   Discount discount = new Discount()
             *   {
             *       CommAmt = salesRules.DiscountList[i].commAmount,
             *       ID = salesRules.DiscountList[i].ID,
             *       DiscountPriority = salesRules.DiscountList[i].Priority,
             *       commround = salesRules.DiscountList[i].commRound,
             *       commrelatedunit = salesRules.DiscountList[i].commRelatedUnit,
             *       commtype = salesRules.DiscountList[i].commType,
             *       DiscountBase = salesRules.DiscountList[i].Base,
             *       DiscountName = salesRules.DiscountList[i].Name,
             *
             *   };
             *   discount.DiscountCriterias = salesRules.DiscountList[i].CriteriaList.Select(a => new DiscountCriteria()
             *   {
             *       criterianame = a.criteriaName,
             *       criteriavalue = a.value,
             *       operation = a.operation,
             *       DiscountID = salesRules.DiscountList[i].ID.ToString(),
             *       CriteriaValueText = a.textValue
             *   }).ToList();
             *   DiscountList.Add(discount);
             * }*/
        }
        //search
        public void FillSalesRules(string POS, string Category, string ServiceType)
        {
            SalesRulesRepo repo = new SalesRulesRepo();

            salesRules = repo.GetSalesRules(Category, POS, ServiceType);
            for (int i = 0; i < salesRules.MarkupList.Count; i++)
            {
                MarkUp markUp = new MarkUp()
                {
                    CommAmt         = salesRules.MarkupList[i].commAmount,
                    ID              = salesRules.MarkupList[i].ID,
                    MarkupPriority  = salesRules.MarkupList[i].Priority,
                    CommRound       = salesRules.MarkupList[i].commRound,
                    CommRelatedUnit = salesRules.MarkupList[i].commRelatedUnit,
                    CommType        = salesRules.MarkupList[i].commType,
                    markupbase      = salesRules.MarkupList[i].Base,
                    markupname      = salesRules.MarkupList[i].Name,
                };
                markUp.MarkupCriterias = salesRules.MarkupList[i].CriteriaList.Select(a => new MarkupCriteria()
                {
                    criterianame      = a.criteriaName,
                    criteriavalue     = a.value,
                    operation         = a.operation,
                    markupid          = salesRules.MarkupList[i].ID.ToString(),
                    CriteriaValueText = a.textValue
                }).ToList();
                MarkupList.Add(markUp);
            }
            for (int i = 0; i < salesRules.DiscountList.Count; i++)
            {
                Discount discount = new Discount()
                {
                    CommAmt          = salesRules.DiscountList[i].commAmount,
                    ID               = salesRules.DiscountList[i].ID,
                    DiscountPriority = salesRules.DiscountList[i].Priority,
                    commround        = salesRules.DiscountList[i].commRound,
                    commrelatedunit  = salesRules.DiscountList[i].commRelatedUnit,
                    commtype         = salesRules.DiscountList[i].commType,
                    DiscountBase     = salesRules.DiscountList[i].Base,
                    DiscountName     = salesRules.DiscountList[i].Name,
                };
                discount.DiscountCriterias = salesRules.DiscountList[i].CriteriaList.Select(a => new DiscountCriteria()
                {
                    criterianame      = a.criteriaName,
                    criteriavalue     = a.value,
                    operation         = a.operation,
                    DiscountID        = salesRules.DiscountList[i].ID.ToString(),
                    CriteriaValueText = a.textValue
                }).ToList();
                DiscountList.Add(discount);
            }
        }
        public DyeingOrderInvoiceViewModel() : base(PermissionItemName.DyeingOrderInvoice)
        {
            GetItemPermissions(PermissionItemName.DyeingOrderInvoice.ToString());
            //PermissionItemName.dyeing
            DyeingServiceClient.PostDyeingOrderInvoiceCompleted += (s, sv) =>
            {
                if (sv.Result != null)
                {
                    SelectedMainRow.InjectFrom(sv.Result);
                }
                SelectedMainRow.VisPosted = false;
                MessageBox.Show("Posted Completed");
            };
            DyeingServiceClient.DeleteDyeingOrderInvoiceHeaderCompleted += (s, ev) =>
            {
                if (ev.Error != null)
                {
                    MessageBox.Show(ev.Error.Message);
                }
                var oldrow = MainRowList.FirstOrDefault(x => x.Iserial == ev.Result);
                if (oldrow != null)
                {
                    MainRowList.Remove(oldrow);
                }
            };

            MiscValueTypeList = new ObservableCollection <GenericTable>
            {
                new GenericTable {
                    Iserial = 0, Code = "%", Ename = "%", Aname = "%"
                },
                new GenericTable {
                    Iserial = 1, Code = "Value", Ename = "Value", Aname = "Value"
                }
            };

            var currencyClient = new GlService.GlServiceClient();

            currencyClient.GetGenericCompleted += (s, sv) =>
            {
                CurrencyList = new ObservableCollection <CRUDManagerService.GenericTable>();
                foreach (var item in sv.Result)
                {
                    CurrencyList.Add(new CRUDManagerService.GenericTable().InjectFrom(item) as CRUDManagerService.GenericTable);
                }
            };
            currencyClient.GetGenericAsync("TblCurrency", "%%", "%%", "%%", "Iserial", "ASC", LoggedUserInfo.DatabasEname);

            var journalAccountTypeClient = new GlService.GlServiceClient();

            journalAccountTypeClient.GetGenericCompleted += (s, sv) =>
            {
                JournalAccountTypeList = sv.Result;
            };
            journalAccountTypeClient.GetGenericAsync("TblJournalAccountType", "%%", "%%", "%%", "Iserial", "ASC", LoggedUserInfo.DatabasEname);


            PurchasePlanClient.GetTblMarkupProdAsync(0, int.MaxValue, "it.Iserial", null, null, LoggedUserInfo.DatabasEname);

            PurchasePlanClient.GetTblMarkupProdCompleted += (s, sv) =>
            {
                MarkupList = new ObservableCollection <TblMarkupProd>();
                foreach (var item in sv.Result)
                {
                    MarkupList.Add(new TblMarkupProd().InjectFrom(item) as TblMarkupProd);
                }

                // MarkupList = sv.Result;
            };



            SelectedMainRow = new TblDyeingOrderInvoiceHeaderViewModel {
                DocDate = DateTime.Now
            };

            DyeingServiceClient.UpdateOrInsertDyeingOrderInvoiceHeaderCompleted += (s, sv) =>
            {
                if (sv.Error != null)
                {
                    MessageBox.Show(sv.Error.Message);
                }
                try
                {
                    SelectedMainRow.InjectFrom(sv.Result);

                    if (SelectedMainRow.Status == 0)
                    {
                        SelectedMainRow.VisPosted = true;
                    }
                    else
                    {
                        SelectedMainRow.VisPosted = false;
                    }
                }

                catch (Exception)
                {
                }
                Loading = false;
                if (OpenMisc)
                {
                    new MarkupTransProdChildWindow(this).Show();
                    OpenMisc = false;
                }
            };

            PurchasePlanClient.UpdateOrInsertDyeingOrderInvoiceMarkupTransProdsCompleted += (s, x) =>
            {
                var markup = new TblMarkupProd();
                try
                {
                    var row = SelectedMainRow.MarkUpTransList.ElementAt(x.outindex);
                    if (row != null)
                    {
                        markup = row.TblMarkupProd1;
                    }
                    if (x.Result.Iserial == -1)
                    {
                        MessageBox.Show("This Markup Is Not Linked To Account");
                        row.TblMarkupProd1 = null;
                    }
                    else
                    {
                        SelectedMainRow.MarkUpTransList.ElementAt(x.outindex).InjectFrom(x.Result);
                        if (row != null)
                        {
                            row.TblMarkupProd1 = markup;
                        }
                    }
                }
                catch (Exception)
                {
                }

                Loading = false;
            };
            DyeingServiceClient.GetDyeingOrderInvoiceHeaderCompleted += (s, sv) =>
            {
                Loading = false;
                MainRowList.Clear();
                foreach (var variable in sv.Result.ToList())
                {
                    var newvendor = new Vendor();
                    newvendor.InjectFrom(sv.Vendors.FirstOrDefault(w => w.vendor_code == variable.Vendor));

                    var newrow = new TblDyeingOrderInvoiceHeaderViewModel();
                    newrow.InjectFrom(variable);
                    newrow.VendorPerRow = newvendor;
                    if (newrow.Status == 0)
                    {
                        newrow.VisPosted = true;
                    }
                    newrow.CurrencyPerRow = new GenericTable();
                    newrow.CurrencyPerRow.InjectFrom(CurrencyList.FirstOrDefault(w => w.Iserial == variable.TblCurrency));
                    newrow.TblCurrency = variable.TblCurrency;
                    MainRowList.Add(newrow);
                }
            };

            DyeingServiceClient.GetDyeingOrderInvoiceDetailCompleted += (s, sv) =>
            {
                foreach (var variable in sv.Result.ToList())
                {
                    var newrow = new TblDyeingOrderInvoiceDetailViewModel();
                    newrow.InjectFrom(variable);
                    newrow.ServicePerRow       = new TblService();
                    newrow.ColorPerRow         = new TblColor();
                    newrow.ColorPerRow.Code    = variable.TblColor1.Code;
                    newrow.ServicePerRow.Code  = variable.TblService1.Code;
                    newrow.ServicePerRow.Ename = variable.TblService1.Ename;
                    TransactionDetails.Add(newrow);
                }
            };
            DyeingServiceClient.SearchDyeingOrderInvoiceCompleted += (s, sv) =>
            {
                TransactionDetails.Clear();
                foreach (var variable in sv.Result.ToList())
                {
                    var newrow = new TblDyeingOrderInvoiceDetailViewModel();
                    newrow.InjectFrom(variable);
                    newrow.ServicePerRow       = new TblService();
                    newrow.ColorPerRow         = new TblColor();
                    newrow.ColorPerRow.Code    = variable.ColorCode;
                    newrow.ServicePerRow.Code  = variable.ServiceCode;
                    newrow.ServicePerRow.Ename = variable.ServiceName;
                    newrow.SupplierInv         = variable.SupplierInv;
                    TransactionDetails.Add(newrow);
                }
            };

            PurchasePlanClient.DyeingOrderInvoiceMarkupTransProdCompleted += (s, sv) =>
            {
                foreach (var row in sv.Result)
                {
                    var newrow = new TblMarkupTranProdViewModel();
                    newrow.InjectFrom(row);
                    newrow.CurrencyPerRow = new GenericTable();
                    newrow.CurrencyPerRow.InjectFrom(CurrencyList.FirstOrDefault(w => w.Iserial == row.TblCurrency));
                    newrow.TblCurrency    = row.TblCurrency;
                    newrow.TblMarkupProd1 = new TblMarkupProd();
                    newrow.TblMarkupProd1.InjectFrom(MarkupList.FirstOrDefault(w => w.Iserial == row.TblMarkupProd));
                    newrow.TblMarkupProd            = row.TblMarkupProd;
                    newrow.JournalAccountTypePerRow = JournalAccountTypeList.FirstOrDefault(w => w.Iserial == newrow.TblJournalAccountType);
                    newrow.EntityPerRow             = new GlService.Entity().InjectFrom(sv.entityList.FirstOrDefault(w => w.Iserial == row.EntityAccount && w.TblJournalAccountType == row.TblJournalAccountType)) as GlService.Entity;
                    newrow.TblJournalAccountType    = row.TblJournalAccountType;
                    newrow.EntityAccount            = row.EntityAccount;
                    SelectedMainRow.MarkUpTransList.Add(newrow);
                }

                Loading = false;

                if (SelectedMainRow.MarkUpTransList.Count == 0)
                {
                    AddNewMarkUpRow(false, true);
                }
            };
        }