예제 #1
0
        /// <summary>
        /// Saves information that is common for all rows on a AidId
        /// 
        /// </summary>
        private void saveCommonOrderRow(OrderRowDefinitions.OrderRow or, ref GarpGenericDB data)
        {
            data.find(or.OrderNo);
            data.next();

            while (data.getValue("ONR").Equals(or.OrderNo) && !data.EOF)
            {
                if ((getFormatedAidId(data.getValue("NX1")) == or.AidNr) && (!isEgenAvgift(data.getValue("ANR"))))
                {
                    fillCommonOrderRowFields(or, data);
                }
                data.next();
            }
        }
예제 #2
0
        public void findOwnFeeConnection(string onr, string row, ref OrderRowDefinitions.OwnFee ownfee )
        {
            string s = "";
              string[] s2;

              mOGK.Find(onr.PadRight(6) + row.PadLeft(3));
              mOGK.Next();

              while ((mONR.Value.Trim().Equals(onr.Trim())) && (mRDC.Value.Trim().Equals(row.Trim())) && !mOGK.Eof)
              {
            if (GCF.noNULL(mFAF.Value).Equals("E"))
            {
              try
              {
            s = mTX1.Value.Substring(26);
            s2 = s.Split('-');

            ownfee.PatientsOrderNo = s2[0].Trim();
            ownfee.PatientsRowNo = s2[1].Trim();
            return;
              }
              catch (Exception e)
              {
            Log4Net.Logger.loggError(e, "", app.User, "OrderRowText.findOwnFeeConnection");
              }
            }

            mOGK.Next();
              }
        }
예제 #3
0
        private void fillCommonOrderRowFields(OrderRowDefinitions.OrderRow or, GarpGenericDB data)
        {
            mOGR.setValue("LDT", GCF.noNULL(or.LevTid));
            mOGR.setValue("DIM", !GCF.noNULL(or.AidDate).Equals("") ? "1" + or.AidDate : or.AidDate);
            mOGR.setValue("RES",oProdStat.getIdByTX1(GCF.noNULL(or.Prodstatus)));
            mOGR.setValue("BNX", or.SelectedHandler);
            //mOGA.setValue("LSE", !GCF.noNULL(GCF.noNULL(or.DeliverMode)).Equals("") ? oDelM.getKeyByName(or.DeliverMode) : "");

            if (or.Warrenty)
            {
                mOGR.setValue("RAB", "-100");
                mOGR.setValue("RBK", "G");
            }
            else
            {
                mOGR.setValue("RAB", "");
                mOGR.setValue("RBK", "");
            }

            if(mOGR2.find(or.OrderNo.PadRight(6) + or.Rad.PadLeft(3)))
            {
                mOGR2.setValue("C2A", GCF.noNULL(or.Thord_NeedStep));
                mOGR2.setValue("C1A", or.FirstTimePatient ? "1" : "0");
            }

            orText.saveAidsText(or.OrderNo, or.Rad, or.AidsText);
        }
예제 #4
0
        private void fillGarpTableFields(OrderRowDefinitions.OrderRow or, ref GarpGenericDB data)
        {
            data.setValue("ANR", or.Artikel);
            data.setValue("ORA", or.Antal.Replace(",", "."));

            if (isInternalProduct(or.Artikel))
            {
                if (GCF.noNULL(or.APris).Equals(""))
                    mOGR.setValue("LVP", "0");
                else
                    mOGR.setValue("LVP", or.APris.Replace(",", "."));

                mOGR.setValue("LPF", "F");

                // PRI is always zero on internal products
                mOGR.setValue("PRI", "0");
            }
            else
            {
                if (GCF.noNULL(or.APris).Equals(""))
                    mOGR.setValue("PRI", "0");
                else
                    mOGR.setValue("PRI", or.APris.Replace(",", "."));
            }

            //data.setValue("PRI", or.APris);

            try
            {
                if (!GCF.noNULL(or.LevTid).Equals(""))
                    data.setValue("LDT", or.LevTid);
            }
            catch { }

            if (GCF.noNULL(or.AidDate).Trim() != "")
                mOGR.setValue("DIM", "1" + or.AidDate);
            else
                mOGR.setValue("DIM", GCF.noNULL(or.AidDate));

            data.setValue("RES", oProdStat.getIdByTX1(or.Prodstatus));
            data.setValue("BNX", or.SelectedHandler);
            data.setValue("INK", or.InkStat);

            if (or.ViewInList)
                data.setValue("X1F", "x");
            else
                data.setValue("X1F", "0");

            if (or.Warrenty)
            {
                data.setValue("RAB", "-100");
                data.setValue("RBK", "G");
            }
            else
            {
                data.setValue("RAB", "");
                data.setValue("RBK", "");
            }

            if (or.Beloppsrad)
                data.setValue("BRA", "*");
            else
                data.setValue("BRA", "");

            mOGR2.setValue("C2A", or.Thord_NeedStep);
            mOGR2.setValue("NU5", or.AidOid.ToString());
            mOGR2.setValue("NU6", or.PartOid.ToString());

            data.setValue("EXT", or.EA_ProductGroup);

            mOGR2.setValue("C1C", or.Priority);
            mOGR2.setValue("C2B", or.AidPriority);

            // ********* Producktions, vet inte ens om dett blir aktuellt ************
            if (GCF.noNULL(or.ProductionTitle).Length > 20)
            {
                mOGR2.setValue("C20", or.ProductionTitle.Substring(0, 20));
                mOGR2.setValue("C10", or.ProductionTitle.Substring(20));
            }
            else
            {
                mOGR2.setValue("C20", or.ProductionTitle);
                mOGR2.setValue("C10", "");
            }

            try
            {
                if (or.Urgent)
                    mOGR2.setValue("C1B", "1");
                else
                    mOGR2.setValue("C1B", "0");
            }
            catch { mOGR2.setValue("C1B", "0"); }

            string[] s = { "yyMMdd", "yyyyMMdd", "yyyy-MM-dd" };
            try
            {
                mOGR2.setValue("C06", or.PromisedDeliverDate.HasValue ? or.PromisedDeliverDate.Value.ToString("yyMMdd") : "");
            }
            catch { mOGR2.setValue("C06", DateTime.Today.ToString("yyMMdd")); }

            try
            {
                mOGR2.setValue("C07", or.ConditionDate.HasValue ? or.ConditionDate.Value.ToString("yyMMdd") : "");
            }
            catch { mOGR2.setValue("C07", DateTime.Today.ToString("yyMMdd")); }
        }
예제 #5
0
        public string _deliverAid(OrderRowDefinitions.OrderRow[] or, string levdate, string bvk)
        {
            string sFSNr = "";
            HelpClasses.Table oProdStat = new HelpClasses.Table("1R");

            for (int i = 0; i < or.Length; i++)
            {
                // Fösta raden levereras på ny FS och de nästkommande på samma FS
                if (sFSNr.Equals(""))
                    sFSNr = deliverRow(or[i].OrderNo, or[i].Rad, or[i].Antal, levdate, "A");
                else
                    sFSNr = deliverRow(or[i].OrderNo, or[i].Rad, or[i].Antal, levdate, sFSNr);
            }

            // Set paymentterms on FS if bvk is not ""
            mHKA.index = 1;
            mHKA.find(sFSNr);
            mHKA.next();
            if (mHKA.getValue("HNR").Trim().Equals(sFSNr.Trim()) && !bvk.Equals(""))
            {
                mHKA.setValue("BVK",bvk);
                mHKA.post();
            }
            return sFSNr;
        }
예제 #6
0
        public void doPost(OrderRowDefinitions.OrderRow or, bool saveCommonData)
        {
            try
            {
                fillGarpTableFields(or, ref mOGR);

                mOGR.post();
                mOGR2.post();

                // Saves common data
                if (saveCommonData && !isEgenAvgift(or.Artikel))
                    saveCommonOrderRow(or, ref mOGR);

            }
            catch { }
        }
예제 #7
0
        ///// <summary>
        ///// Saves information that is common for all rows on a AidId
        ///// 
        ///// </summary>
        //private void saveCommonOrderRow(ref OrderRowDefinitions.OrderRow or)
        //{
        //    OrderRowCOM orc = new OrderRowCOM();
        //    if (orc.findFirstRow(or.OrderNo))
        //    {
        //        do
        //        {
        //            if ((orc.AidID == or.AidNr) && (!orc.isEgenAvgift))
        //            {
        //                fillCommonOrderRowFields(ref or);
        //            }
        //        }
        //        while (!orc.nextRow());
        //    }
        //}
        private void saveToProduction(OrderRowDefinitions.OrderRow or)
        {
            System.Threading.Tasks.Task.Factory.StartNew(() =>
            {
                try
                {
                    ProductionService.ProductionAidDTO dto = new ProductionService.ProductionAidDTO();

                    dto.OrderNo = or.OrderNo;
                    dto.AidId = int.Parse(or.AidNr);
                    dto.Box = oProdStat.getIdByTX1(or.Prodstatus);
                    dto.ArtNo = or.Artikel;
                    dto.ArtName = oProduct.getNameById(or.Artikel);
                    dto.CompanyId = Config.CompanyId;
                    dto.Urgent = or.Urgent;
                    dto.Title = or.ProductionTitle;
                    dto.PromisedDeliverDate = or.PromisedDeliverDate;
                    dto.ConditionDate = or.ConditionDate;

                    mProdClient.UpdateAid(dto);

                }
                catch (Exception e)
                {
                    Logger.loggError(e, "Error updating ProductionService", "", "saveToProduction(OrderRowDefinitions.OrderRow or)");
                }
            });
        }
예제 #8
0
        /// <summary>
        /// Spara orderrad
        /// 
        /// </summary>
        /// <param name="or"></param>
        /// <returns></returns>
        public bool saveOrderRow(OrderRowDefinitions.OrderRow or, bool saveCommonData, bool saveToThord)
        {
            // Avbryt om ordern är stängd
            if (!isOrderOpen(or.OrderNo) || or.Rad.Equals(""))
                return false;

            // Finns inte artikelnummer, radera raden och avbryt men returnera ändå
            // true då det inte skall genereas något felmeddelande
            if (or.Artikel.Equals(""))
            {
                removeRow(or.OrderNo, or.Rad);
                return true;
            }

            if (!mOR.findRow(or.OrderNo, or.Rad))
                or = mOR.doInsert(or.OrderNo, or.AidNr, or.Artikel);

            mOR.doPost(or, saveCommonData);

            // && !or.RemissNo.Equals("")
            if (Config.IsThordUser && saveToThord && !or.Warrenty)
            {
                if (!ECS.noNULL(or.Thord_NeedStep).Trim().Equals(""))
                    thordfunc.sendReferral(garpref.getReferral(or.OrderNo, or.AidNr));
                else
                {
                    //MessageBox.Show("Du måste ange en behovstrappa för att spara till Thord.", "Behovstrappa saknas");
                    Exception e = new Exception("Du måste ange en behovstrappa för att spara till Thord.");
                    e.Source = "Behovstrappa";
                    throw e;
                }
            }

            saveToProduction(or);

            return true;
        }
예제 #9
0
        /// <summary>
        /// Levererar ett helt hjälpmedel på samma följesedelsnummer
        /// 
        /// </summary>
        /// <param name="or">OrderRow</param>
        /// <param name="bvk">Paymentterms that should be used</param>
        /// <returns>Följesedelsnummer som leveransen utfördes på</returns>
        public string deliverAid(OrderRowDefinitions.OrderRow[] or, string bvk, bool checkdate)
        {
            string sFSNr = "", levdate = "";

            // Hämta leveranstid från första raden som inte är en EA, detta för att det inte skall finnas
            // någon chans att det blir olka levtider på ett hjälpmedelsid
            if (or.Length > 0)
            {
                foreach(OrderRowDefinitions.OrderRow r in or)
                {
                    if (!mOR.isEgenAvgift(r.Artikel))
                    {
                        levdate = ECS.noNULL(r.LevTid);
                        break;
                    }
                }

            }

            // If no check on date should be done and date ar "", set today as date
            if (!checkdate && levdate.Equals(""))
                levdate = DateTime.Today.ToString("yyMMdd");

            // Leverara bara om det finns en leveranstid
            if (!levdate.Trim().Equals(""))
            {
                sFSNr = mOR._deliverAid(or, levdate, bvk);

                try
                {
                    or[0].Prodstatus = oProdStat.getTx1ByKey("1");
                    or[0].LevTid = levdate;
                    saveOrderRow(or[0], true, true);
                }
                catch { }
            }
            return sFSNr;
        }