Exemplo n.º 1
0
        public void InsertKøbsOrder(MimeMessage message, int DocumentRef, clsParam objParam)
        {
            var From = message.From.ToString();

            From = ExtractEmails(From);
            var Date    = message.Date.DateTime;
            var Subject = objParam.Tekst;

            if (string.IsNullOrEmpty(Subject))
            {
                Subject = message.Subject;
            }


            string wAccount = null;

            try
            {
                wAccount = (from c in this.m_Creditors where c.Account == objParam.Konto select c.Account).First();
            }
            catch (Exception)
            {
                try
                {
                    wAccount = (from c in this.m_Creditors where ((c.ContactEmail != null) && (c.ContactEmail.ToLower() == From.ToLower())) || ((c._InvoiceEmail != null) && (c._InvoiceEmail.ToLower() == From.ToLower())) select c.Account).First();
                }
                catch
                {
                    wAccount = "100000"; //Ukendt kreditor
                }
            }

            CreditorOrderClient recOrder = new CreditorOrderClient()
            {
                Account      = wAccount,
                InvoiceDate  = Date,
                DeliveryDate = Date,
                DocumentRef  = DocumentRef,
                DeleteLines  = true,
                DeleteOrder  = true
            };
            var taskInsertCreditorOrder = m_api.Insert(recOrder);

            taskInsertCreditorOrder.Wait();
            var err1 = taskInsertCreditorOrder.Result;

            CreditorOrderLineClient recOrderLine = new CreditorOrderLineClient()
            {
                Text           = Subject,
                Qty            = 1,
                Price          = objParam.Kredit == null ? 0 : (double)objParam.Kredit,
                PostingAccount = objParam.Modkonto,
            };

            recOrderLine.SetMaster(recOrder);
            var taskInsertCreditorOrderLine = m_api.Insert(recOrderLine);

            taskInsertCreditorOrderLine.Wait();
            var err2 = taskInsertCreditorOrderLine.Result;
        }
        void UpdatePrice(CreditorOrderLineClient rec)
        {
            var priceLookup = SetPriceLookup(rec);

            if (priceLookup != null && priceLookup.UseCustomerPrices)
            {
                priceLookup.GetCustomerPrice(rec, false);
            }
        }
Exemplo n.º 3
0
 async void setLocation(InvWarehouse master, CreditorOrderLineClient rec)
 {
     if (api.CompanyEntity.Location)
     {
         if (master != null)
         {
             rec.locationSource = master.Locations ?? await master.LoadLocations(api);
         }
         else
         {
             rec.locationSource = null;
             rec.Location       = null;
         }
         rec.NotifyPropertyChanged("LocationSource");
     }
 }
Exemplo n.º 4
0
 async void setTask(ProjectClient project, CreditorOrderLineClient rec)
 {
     if (api.CompanyEntity.ProjectTask)
     {
         if (project != null)
         {
             rec.taskSource = project.Tasks ?? await project.LoadTasks(api);
         }
         else
         {
             rec.taskSource = null;
             rec.Task       = null;
         }
         rec.NotifyPropertyChanged("TaskSource");
     }
 }
Exemplo n.º 5
0
        private void DataControl_CurrentItemChanged(object sender, DevExpress.Xpf.Grid.CurrentItemChangedEventArgs e)
        {
            CreditorOrderLineClient oldselectedItem = e.OldItem as CreditorOrderLineClient;

            if (oldselectedItem != null)
            {
                oldselectedItem.PropertyChanged -= CreditorOrderLineGrid_PropertyChanged;
            }

            CreditorOrderLineClient selectedItem = e.NewItem as CreditorOrderLineClient;

            if (selectedItem != null)
            {
                selectedItem.PropertyChanged += CreditorOrderLineGrid_PropertyChanged;
            }
        }
        async void MarkedOrderLine(ProductionOrderLineClient selectedItem)
        {
            busyIndicator.IsBusy = true;
            var      orderLineMarked = new CreditorOrderLineClient();
            OrderAPI orderApi        = new OrderAPI(api);
            var      res             = await orderApi.GetMarkedOrderLine(selectedItem, orderLineMarked);

            busyIndicator.IsBusy = false;
            if (res == ErrorCodes.Succes)
            {
                AddDockItem(TabControls.OrderLineMarkedPage, new object[] { api, orderLineMarked }, string.Format("{0}: {1}", Uniconta.ClientTools.Localization.lookup("PurchaseLines"), orderLineMarked._OrderNumber));
            }
            else
            {
                UtilDisplay.ShowErrorCode(res);
            }
        }
        private async void MarkOrderLineAgainstOL(CreditorOrderLineClient selectedItem = null)
        {
            OrderAPI orderApi = new OrderAPI(api);

            busyIndicator.IsBusy = true;
            var err = await orderApi.MarkedOrderLineAgainstOrderLine(debtorOrderLine, selectedItem);

            busyIndicator.IsBusy = false;
            if (err != ErrorCodes.Succes)
            {
                UtilDisplay.ShowErrorCode(err);
            }
            else
            {
                dockCtrl.CloseDockItem();
            }
        }
Exemplo n.º 8
0
        private void Location_GotFocus(object sender, RoutedEventArgs e)
        {
            CreditorOrderLineClient selectedItem = dgCreditorPurchagelineGrid.SelectedItem as CreditorOrderLineClient;

            if (selectedItem != null && selectedItem._Warehouse != null && warehouse != null)
            {
                var selected = (InvWarehouse)warehouse.Get(selectedItem._Warehouse);
                setLocation(selected, selectedItem);
                if (prevLocation != null)
                {
                    prevLocation.isValidate = false;
                }
                var editor = (CorasauGridLookupEditorClient)sender;
                prevLocation      = editor;
                editor.isValidate = true;
            }
        }
        void InitPage(UnicontaBaseEntity line)
        {
            InitializeComponent();
            UnicontaBaseEntity[] lines;
            if (line is DebtorOrderLineClient)
            {
                lines = new DebtorOrderLineClient[] { (DebtorOrderLineClient)line }
            }
            ;
            else
            {
                lines = new CreditorOrderLineClient[] { (CreditorOrderLineClient)line }
            };

            dgCreditorOrderLineGrid.SetSource(lines);
            dgCreditorOrderLineGrid.api = this.api;
            SetRibbonControl(localMenu, dgCreditorOrderLineGrid);
            dgCreditorOrderLineGrid.BusyIndicator = busyIndicator;
            dgCreditorOrderLineGrid.Readonly      = true;
        }
        Uniconta.API.DebtorCreditor.FindPrices SetPriceLookup(CreditorOrderLineClient rec)
        {
            var OrderNumber = rec.OrderRowId;

            if (OrderNumber != 0)
            {
                if (dictPriceLookup.ContainsKey(OrderNumber))
                {
                    return(dictPriceLookup[OrderNumber]);
                }

                var order = (CreditorOrder)creditorOrders.Get(OrderNumber);
                if (order != null)
                {
                    var priceLookup = new Uniconta.API.DebtorCreditor.FindPrices(order, api);
                    dictPriceLookup.Add(OrderNumber, priceLookup);
                    return(priceLookup);
                }
            }
            return(null);
        }
Exemplo n.º 11
0
        private void localMenu_OnItemClicked(string ActionType)
        {
            switch (ActionType)
            {
            case "AddRow":
                var row = dgCreditorOrderLineGrid.AddRow() as DCOrderLine;
                row._ExchangeRate = this.exchangeRate;
                break;

            case "CopyRow":
                dgCreditorOrderLineGrid.CopyRow();
                break;

            case "DeleteRow":
                dgCreditorOrderLineGrid.DeleteRow();
                break;

            case "Storage":
                AddDockItem(TabControls.InvItemStoragePage, dgCreditorOrderLineGrid.syncEntity, true);
                break;

            case "ShowInvoice":
            case "GenerateInvoice":
                if (!string.IsNullOrEmpty(Order.Account))
                {
                    if (Utility.HasControlRights("GenerateInvoice", api.CompanyEntity))
                    {
                        GenerateInvoice(Order, ActionType == "ShowInvoice" ? true: false);
                    }
                    else
                    {
                        UtilDisplay.ShowControlAccessMsg("GenerateInvoice");
                    }
                }
                else
                {
                    string strmg = string.Format(Uniconta.ClientTools.Localization.lookup("CannotBeBlank"),
                                                 Uniconta.ClientTools.Localization.lookup("Account"));
                    UnicontaMessageBox.Show(strmg, Uniconta.ClientTools.Localization.lookup("Error"),
                                            MessageBoxButton.OK);
                }
                break;

            case "RefVoucher":
                var _refferedVouchers = new List <int>();
                if (Order._DocumentRef != 0)
                {
                    _refferedVouchers.Add(Order._DocumentRef);
                }

                AddDockItem(TabControls.AttachVoucherGridPage, new object[1] {
                    _refferedVouchers
                }, true);
                break;

            case "ShowVoucher":
                busyIndicator.IsBusy = true;
                ViewVoucher(TabControls.VouchersPage3, Order);
                busyIndicator.IsBusy = false;
                break;

            case "ImportVoucher":
                if (Order == null)
                {
                    return;
                }
                VouchersClient voucher = new VouchersClient();
                voucher._Content         = ContentTypes.PurchaseInvoice;
                voucher._Amount          = Order.InvoiceAmount;
                voucher._CreditorAccount = Order._DCAccount;
                CWAddVouchers addVouvhersDialog = new CWAddVouchers(api, voucher: voucher);
                addVouvhersDialog.Closed += delegate
                {
                    if (addVouvhersDialog.DialogResult == true)
                    {
                        if (addVouvhersDialog.VoucherRowIds.Length > 0)
                        {
                            Order.DocumentRef   = addVouvhersDialog.VoucherRowIds[0];
                            Order.InvoiceAmount = addVouvhersDialog.vouchersClient._Amount;
                            Order.InvoiceNumber = addVouvhersDialog.vouchersClient.Invoice;
                        }
                    }
                };
                addVouvhersDialog.Show();
                break;

            case "RemoveVoucher":
                RemoveVoucher(Order);
                break;

            case "InsertSubTotal":
                var dbOrderLineClient = new CreditorOrderLineClient {
                    Subtotal = true
                };
                dgCreditorOrderLineGrid.AddRow(dbOrderLineClient);
                break;

            case "ReadOIOUBL":
                ReadOIOUBL();
                break;

            case "StockLines":
                if (dgCreditorOrderLineGrid.SelectedItem == null)
                {
                    return;
                }

                var credOrderLine = dgCreditorOrderLineGrid.SelectedItem as CreditorOrderLineClient;
                if (!string.IsNullOrEmpty(credOrderLine._Item))
                {
                    AddDockItem(TabControls.CreditorInvoiceLine, credOrderLine, string.Format("{0}: {1}", Uniconta.ClientTools.Localization.lookup("InvTransaction"), credOrderLine._Item));
                }
                break;

            case "AttachDoc":
                AttachDocuments();
                break;

            case "AddItems":
                if (this.items == null)
                {
                    return;
                }
                object[] paramArray = new object[3] {
                    new InvItemPurchaseCacheFilter(this.items), dgCreditorOrderLineGrid.TableTypeUser, Order
                };
                AddDockItem(TabControls.AddMultipleInventoryItem, paramArray, true,
                            string.Format(Uniconta.ClientTools.Localization.lookup("AddOBJ"), Uniconta.ClientTools.Localization.lookup("InventoryItems")), null, floatingLoc: Utility.GetDefaultLocation());
                break;

            case "AddVariants":
                if (dgCreditorOrderLineGrid.SelectedItem == null)
                {
                    return;
                }
                var orderLine = dgCreditorOrderLineGrid.SelectedItem as CreditorOrderLineClient;
                var itm       = orderLine?.InvItem;
                if (itm?._StandardVariant != null)
                {
                    var paramItem = new object[] { orderLine, Order };
                    dgCreditorOrderLineGrid.SetLoadedRow(orderLine);
                    AddDockItem(TabControls.ItemVariantAddPage, paramItem, true,
                                string.Format(Uniconta.ClientTools.Localization.lookup("AddOBJ"), Uniconta.ClientTools.Localization.lookup("Variants")), null, floatingLoc: Utility.GetDefaultLocation());
                }
                break;

            default:
                gridRibbon_BaseActions(ActionType);
                break;
            }
            RecalculateAmount();
        }
Exemplo n.º 12
0
        async void setVariant(CreditorOrderLineClient rec, bool SetVariant2)
        {
            if (items == null || variants1 == null || variants2 == null)
            {
                return;
            }

            //Check for Variant2 Exist
            if (api.CompanyEntity.NumberOfVariants < 2)
            {
                SetVariant2 = false;
            }

            var item = (InvItem)items.Get(rec._Item);

            if (item != null && item._StandardVariant != null)
            {
                rec.standardVariant = item._StandardVariant;
                var master = (InvStandardVariant)standardVariants?.Get(item._StandardVariant);
                if (master == null)
                {
                    return;
                }
                if (master._AllowAllCombinations)
                {
                    rec.Variant1Source = (IEnumerable <InvVariant1>) this.variants1?.GetKeyStrRecords;
                    rec.Variant2Source = (IEnumerable <InvVariant2>) this.variants2?.GetKeyStrRecords;
                }
                else
                {
                    var Combinations = master.Combinations ?? await master.LoadCombinations(api);

                    if (Combinations == null)
                    {
                        return;
                    }
                    List <InvVariant1> invs1 = null;
                    List <InvVariant2> invs2 = null;
                    string             vr1   = null;
                    if (SetVariant2)
                    {
                        vr1   = rec._Variant1;
                        invs2 = new List <InvVariant2>();
                    }
                    else
                    {
                        invs1 = new List <InvVariant1>();
                    }

                    string LastVariant     = null;
                    var    var2Value       = rec._Variant2;
                    bool   hasVariantValue = (var2Value == null);
                    foreach (var cmb in Combinations)
                    {
                        if (SetVariant2)
                        {
                            if (cmb._Variant1 == vr1 && cmb._Variant2 != null)
                            {
                                var v2 = (InvVariant2)variants2.Get(cmb._Variant2);
                                invs2.Add(v2);
                                if (var2Value == v2._Variant)
                                {
                                    hasVariantValue = true;
                                }
                            }
                        }
                        else if (LastVariant != cmb._Variant1)
                        {
                            LastVariant = cmb._Variant1;
                            var v1 = (InvVariant1)variants1.Get(cmb._Variant1);
                            invs1.Add(v1);
                        }
                    }
                    if (SetVariant2)
                    {
                        rec.variant2Source = invs2;
                        //if (!hasVariantValue)
                        //    rec.Variant2 = null;
                    }
                    else
                    {
                        rec.variant1Source = invs1;
                    }
                }
            }
            else
            {
                rec.variant1Source = null;
                rec.variant2Source = null;
            }
            if (SetVariant2)
            {
                rec.NotifyPropertyChanged("Variant2Source");
            }
            else
            {
                rec.NotifyPropertyChanged("Variant1Source");
            }
        }
Exemplo n.º 13
0
        public void InsertKøbsfakturaer()
        {
            int?lastFakid = null;
            CreditorOrderClient recOrder = null;

            var rec_regnskab = Program.qryAktivRegnskab();
            var qryKFak      = from kfv in Program.karFakturavarer_k
                               join kf in Program.karFakturaer_k on new { fakid = kfv.Fakid } equals new { fakid = kf.fakid }
            where kf.faknr != 0 && kf.faktype == 2
            orderby kfv.Fakid, kfv.Line
                select new
            {
                Regnskabid  = rec_regnskab.Rid,
                Sk          = "K",
                Fakid       = kfv.Fakid,
                Faknr       = kf.faknr,
                Dato        = kf.dato,
                kreditornr  = kf.kreditornr,
                Faklinnr    = kfv.Line,
                Varenr      = kfv.Varenr,
                Tekst       = kfv.VareTekst,
                Konto       = kfv.Bogfkonto,
                Momskode    = KarKontoplan.getMomskode(kfv.Bogfkonto),
                Antal       = kfv.Antal,
                Enhed       = kfv.Enhed,
                Pris        = kfv.Pris,
                Rabat       = kfv.Rabat,
                Moms        = kfv.Moms,
                Nettobelob  = kfv.Nettobelob,
                Bruttobelob = kfv.Bruttobelob,
            };

            int antal = qryKFak.Count();

            var api = UCInitializer.GetBaseAPI;

            //var col3 = await api.Query<CreditorOrderClient>();
            //var col4 = await api.Query<CreditorOrderLineClient>();

            foreach (var k in qryKFak)
            {
                if ((!(k.Fakid == 0)) && (lastFakid != k.Fakid))
                {
                    try
                    {
                        var crit = new List <PropValuePair>();
                        var pair = PropValuePair.GenereteWhereElements("OrderNumber", typeof(int), k.Fakid.ToString());
                        crit.Add(pair);
                        var taskCreditorOrder = api.Query <CreditorOrderClient>(null, crit);
                        taskCreditorOrder.Wait();
                        var col = taskCreditorOrder.Result;
                        if (col.Count() == 0)
                        {
                            recOrder = new CreditorOrderClient()
                            {
                                OrderNumber  = k.Fakid,
                                Account      = k.kreditornr.ToString(),
                                InvoiceDate  = k.Dato,
                                DeliveryDate = k.Dato,
                            };
                            var taskInsertCreditorOrder = api.Insert(recOrder);
                            taskInsertCreditorOrder.Wait();
                            var err = taskInsertCreditorOrder.Result;
                        }
                        else
                        {
                            recOrder = col[0];
                        }
                    }
                    catch { }
                }

                CreditorOrderLineClient recOrderLine = new CreditorOrderLineClient()
                {
                    Text           = k.Tekst,
                    Qty            = (double)k.Antal,
                    Price          = (double)k.Pris,
                    PostingAccount = KarNyKontoplan.NytKontonr(k.Konto)
                };
                recOrderLine.SetMaster(recOrder);
                var taskInsertCreditorOrderLine = api.Insert(recOrderLine);
                taskInsertCreditorOrderLine.Wait();
                var err1 = taskInsertCreditorOrderLine.Result;
            }
        }
 public OrderLineMarkedPage(BaseAPI api, CreditorOrderLineClient line)
     : base(api, null)
 {
     InitPage(line);
 }