Exemple #1
0
        public IMSCdu GetCdu(int cduIdx)
        {
            try
            {
                using (var ctx = new LocalDB())
                {
                    var cdu = (from c in ctx.Cdu where c.Idx == cduIdx select c).DefaultIfEmpty(null).First();
                    if (cdu == null)
                        return null;

                    IMSCdu result = new IMSCdu()
                    {
                        Idx = cdu.Idx,
                        GroupIdx = cdu.GroupIdx,
                        No = cdu.No,
                        Name = cdu.Name,
                        UpsList = cdu.UpsList,
                        Extendable = cdu.Extendable,
                        ContractCount = cdu.ContractCount,
                        IpAddress = cdu.IpAddress,
                        Status = cdu.Status,
                        Enabled = cdu.Enabled,
                        InstallAt = cdu.InstallAt,
                        Description = cdu.Description
                    };
                    return result;
                }
            }
            catch (Exception)
            {
                return null;
            }
        }
Exemple #2
0
        public Contract()
        {
            _sessionLock = new object();
            _sessions = new ConcurrentDictionary<string, IMSSession>();

            using (var ctx = new LocalDB())
            {
                ctx.Database.Initialize(true);
            }
        }
Exemple #3
0
        public bool SetCdu(IMSCdu cdu)
        {
            try
            {
                using (var ctx = new LocalDB())
                {
                    var existCud = (from c in ctx.Cdu where c.Idx == cdu.Idx select c).DefaultIfEmpty(null).First();
                    if (existCud == null)
                        return false;

                    if (cdu.GroupIdx != null)
                    {
                        var existGroup = (from g in ctx.Group where g.Idx == cdu.GroupIdx select g).DefaultIfEmpty(null).First();
                        if (existGroup == null)
                            return false;

                        List<int> cduNoList = Regex.Split(existGroup.CduList, @"\D+").Select(n => Convert.ToInt32(n)).ToList();
                        if (!cduNoList.Contains(cdu.GroupIdx.Value))
                        {
                            cduNoList.Add(cdu.GroupIdx.Value);
                            existGroup.CduList = string.Join(",",
                                (from cduNo in cduNoList orderby cduNo ascending select $"{cduNo}").ToArray());
                        }
                        existCud.GroupIdx = cdu.GroupIdx.Value;
                    }

                    existCud.No = cdu.No;
                    existCud.Name = cdu.Name;
                    existCud.Extendable = cdu.Extendable;
                    existCud.IpAddress = cdu.IpAddress;
                    existCud.Enabled = cdu.Enabled;
                    existCud.InstallAt = cdu.InstallAt;
                    existCud.Description = cdu.Description;

                    using (var trx = new TransactionScope())
                    {
                        ctx.SaveChanges();
                        trx.Complete();
                    }
                }
                return true;
            }
            catch (Exception)
            {
                return false;
            }
        }
        /// <summary> setup the initial session and application databases </summary>
        protected void Page_Init(object sender, EventArgs e)
        {
            Application.Lock();
            try {

                if (Application[ApplicationRemoteKey] == null)
                    Application[ApplicationRemoteKey] = new RemoteDB();

                if (Application[ApplicationLocalKey] == null)
                    Application[ApplicationLocalKey] = new LocalDB<string>();

                lock (Session) {
                    if (Session[SessionLocalKey] == null)
                        Session[SessionLocalKey] = new LocalDB<string>();

                    if (Session[CurrentKey] == null)
                        Session[CurrentKey] = 0;

                    Session[SwitcherKey] = new Switcher(
                        new Enable(isEnabled => {
                            Toggle.Enabled = Search.Enabled = Enter.Enabled = Remove.Enabled = isEnabled;
                        }),
                        new IAccess[]{
                            new Access(() => Current.Text, s => { Current.Text = s; }),
                            new Access(() => Size.Text, s => { Size.Text = s; }),
                            new Access(() => Names.Text, s => { Names.Text = s; }),
                            new Access(() => Phones.Text, s => { Phones.Text = s; }),
                            new Access(() => Rooms.Text, s => { Rooms.Text = s; })},
                        new SetClick[]{
                            new SetClick((EventHandler eh) => { Toggle.Click += eh; }),
                            new SetClick((EventHandler eh) => { Search.Click += eh; }),
                            new SetClick((EventHandler eh) => { Enter.Click += eh; }),
                            new SetClick((EventHandler eh) => { Remove.Click += eh; }),
                            new SetClick((EventHandler eh) => { Size.Load += eh; }) },
                        new WorkQueue(),
                            "session local DB", Session[SessionLocalKey],
                            "application local DB", Application[ApplicationLocalKey],
                            "application remote DB", Application[ApplicationRemoteKey]);
                }

            } finally {
                Application.UnLock();
            }
        }
Exemple #5
0
        public static bool ChangeNoteColor(Note note, NoteColor newColor)
        {
            if (note == null)
            {
                return(false);
            }

            Debug.WriteLine("Change note color: " + newColor.Key);
            //App.TelemetryClient.TrackEvent("NoteColorChanged");

            note.Color = newColor;

            bool success = LocalDB.Update(note) == 1;

            if (!success)
            {
                return(false);
            }
            RoamingDB.Update(note);

            var handler = NoteColorChanged;

            if (handler != null)
            {
                handler(null, new NoteColorEventArgs(note, newColor));
            }

            var handler2 = NotesSaved;

            if (handler2 != null)
            {
                handler2(null, EventArgs.Empty);
            }

            return(true);
        }
Exemple #6
0
    IEnumerator DownloadAudio(Music music)
    {
        using (UnityWebRequest www = UnityWebRequestMultimedia.GetAudioClip(music.URL, AudioType.MPEG))
        {
            yield return(www.SendWebRequest());

            if (www.isNetworkError || www.isHttpError)
            {
                Debug.Log(www.error);
            }
            else
            {
                AudioClip myClip = DownloadHandlerAudioClip.GetContent(www);
                while (myClip.loadState != AudioDataLoadState.Loaded)
                {
                    yield return(null);
                }
                print("Download Done");
                //save myClip to a file
                music.Audio = myClip;
                LocalDB.SaveData(music);
            }
        }
    }
Exemple #7
0
        public int Update(sys_role entry)
        {
            using (LocalDB db = new LocalDB())
            {
                StringBuilder sql = new StringBuilder();
                sql.Append("update sys_role set code=@code,title=@title,status=@status where id=@id");
                int cnt = db.Current_Conn.Execute(sql.ToString(), new
                {
                    id     = entry.id,
                    code   = entry.code,
                    status = entry.status,
                    title  = entry.title
                });
                if (cnt > 0)
                {
                    solr.Delete(new SolrQuery("entitytype:sys_role && id:" + entry.id.ToString()));
                    entry.entitytype = "sys_role";
                    solr.Add(entry);
                    solr.Commit();
                }

                return(cnt);
            }
        }
Exemple #8
0
 public int Add(sys_role entry)
 {
     using (LocalDB db = new LocalDB())
     {
         StringBuilder sql = new StringBuilder();
         sql.Append("INSERT INTO dbo.sys_role \n");
         sql.Append("        ( status, code, title, add_time ) \n");
         sql.Append("VALUES  ( @status, -- status - int \n");
         sql.Append("          @code, -- code - nvarchar(50) \n");
         sql.Append("          @title, -- title - nvarchar(50) \n");
         sql.Append("          GETDATE()  -- add_time - datetime \n");
         sql.Append("          );select SCOPE_IDENTITY();");
         int roleid = db.Current_Conn.ExecuteScalar <int>(sql.ToString(), new
         {
             status = entry.status,
             code   = entry.code,
             title  = entry.title
         });
         entry.id = roleid;
         solr.Add(entry);
         solr.Commit();
         return(roleid);
     }
 }
Exemple #9
0
        private IMSSession GetSession(string macAddress)
        {

            // 사용자가 같은 세션으로 이미 등록되어 있을수도 있으므로, 그것을 얻기 위한 함수를 구현한다.
            _operationContext = OperationContext.Current;
            string sessionId = _operationContext.SessionId;

            Debug.Assert(sessionId != null, "GetSession : SessionId is null");

            try
            {
                if (!_sessions.ContainsKey(sessionId))
                {
                    // 접근한 클라이언트의 IP 를 추출하기 위한 루틴
                    MessageProperties prop = _operationContext.IncomingMessageProperties;
                    RemoteEndpointMessageProperty endpoint =
                        prop[RemoteEndpointMessageProperty.Name] as RemoteEndpointMessageProperty;
                    var remoteIpAddress = endpoint != null ? endpoint.Address : "0.0.0.0";

                    using (var ctx = new LocalDB()) // DB 에서 세션을 꺼내기 위해 Scope 를 개방한다.
                    {
                        var q = from s in ctx.Session where s.MacAddress == sessionId select s;

                        if (q.Any()) // DB 에서 해당 세션을 찾았다면.
                        {
                            Session existSession = q.First(); // 위의 조건에 부합하는것중 최신의 것을 하나 꺼낸다.

                            // DB 에 존재하는 세션정보를 기반으로 SessionInfo 객체를 하나 만들어서 목록에 추가한다.
                            IMSSession restoredSession = new IMSSession(sessionId, remoteIpAddress, macAddress);
                            restoredSession.EventIdx = existSession.EventIdx;
                            restoredSession.WarningIdx = existSession.WarningIdx;
                            
                            _sessions[sessionId] = restoredSession;
                            return restoredSession;
                        }
                        else
                        {
                            int eventIdx = (from el in ctx.EventLog orderby el.Idx descending select el.Idx).
                                DefaultIfEmpty(0).First();
                            int warningIdx = (from wl in ctx.WarningLog orderby wl.Idx descending select wl.Idx).
                                DefaultIfEmpty(0).First();

                            Session newSession = new Session()
                            {
                                MacAddress = macAddress,
                                EventIdx = eventIdx,
                                WarningIdx = warningIdx
                            };

                            using (var trx = new TransactionScope())
                            {
                                try
                                {
                                    ctx.Session.Add(newSession);
                                    ctx.SaveChanges();
                                }
                                catch (Exception)
                                {
                                    return null;
                                }
                                
                                trx.Complete();
                            }
                            
                            IMSSession restoredSession = new IMSSession(sessionId, remoteIpAddress, macAddress);
                            restoredSession.EventIdx = eventIdx;
                            restoredSession.WarningIdx = warningIdx;

                            _sessions[sessionId] = restoredSession;
                        }
                    }
                }
                return _sessions[sessionId]; // 세면 목록에서 해당 세션을 찾아서 리턴한다.
            }
            catch (Exception e)
            {
                Console.WriteLine(e.ToString());
                return null; // 예외가 발생해도 null 을 리턴한다.
            }
        }
Exemple #10
0
		private void IssueCreditCard()
		{
			if (mboIsInTransaction)
			{
				MessageBox.Show("Sorry you cannot issue a Credit Card while there is an ongoing transaction. Please finish the transaction first.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Warning);
				return;
			}

			DialogResult loginresult = GetWriteAccessAndLogin(mclsSalesTransactionDetails.CashierID, AccessTypes.CreditCardIssuance);

			if (loginresult == DialogResult.OK)
			{
				try
				{
					DialogResult result;
                    Data.CardTypeDetails clsCardTypeDetails = new Data.CardTypeDetails();
                    Data.ContactDetails clsGuarantorDetails = new AceSoft.RetailPlus.Data.ContactDetails();
                    ContactCreditTypeSelectWnd clsContactCreditTypeSelectWnd = new ContactCreditTypeSelectWnd();
                    clsContactCreditTypeSelectWnd.TerminalDetails = mclsTerminalDetails;
                    clsContactCreditTypeSelectWnd.ShowDialog(this);
                    clsCardTypeDetails = clsContactCreditTypeSelectWnd.CardTypeDetails;
                    result = clsContactCreditTypeSelectWnd.Result;
                    clsContactCreditTypeSelectWnd.Close();
                    clsContactCreditTypeSelectWnd.Dispose();

                    if (result != DialogResult.OK)
                    { return; }

					Data.ContactDetails clsContactDetails;
					ContactSelectWnd clsContactWnd = new ContactSelectWnd();
                    clsContactWnd.EnableContactAddUpdate = GetWriteAccess(mclsSalesTransactionDetails.CashierID, AccessTypes.Contacts) == System.Windows.Forms.DialogResult.OK;
                    clsContactWnd.SysConfigDetails = mclsSysConfigDetails;
                    clsContactWnd.TerminalDetails = mclsTerminalDetails;

                    if (clsCardTypeDetails.WithGuarantor)
					{
                        MessageBox.Show("Please select a GUARANTOR to issue Credit Card.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Information);

						clsContactWnd.ContactGroupCategory = AceSoft.RetailPlus.Data.ContactGroupCategory.CUSTOMER;
                        clsContactWnd.Header = "Select GUARANTOR to issue Credit Card.";
						clsContactWnd.ShowDialog(this);
						clsGuarantorDetails = clsContactWnd.Details;
						result = clsContactWnd.Result;
						clsContactWnd.Close();
						clsContactWnd.Dispose();
						
						if (result != DialogResult.OK)
						{ return; }

						MessageBox.Show(clsGuarantorDetails.ContactName + " has been selected as guarantor." + Environment.NewLine + "Please select the CUSTOMER to issue Credit Card.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Information);
					}
					clsContactWnd = new ContactSelectWnd();
                    clsContactWnd.EnableContactAddUpdate = GetWriteAccess(mclsSalesTransactionDetails.CashierID, AccessTypes.Contacts) == System.Windows.Forms.DialogResult.OK;
                    clsContactWnd.SysConfigDetails = mclsSysConfigDetails;
                    clsContactWnd.TerminalDetails = mclsTerminalDetails;
					clsContactWnd.ContactGroupCategory = AceSoft.RetailPlus.Data.ContactGroupCategory.CUSTOMER;
                    clsContactWnd.Header = "Select CUSTOMER to issue Credit Card.";
					clsContactWnd.ShowDialog(this);
					clsContactDetails = clsContactWnd.Details;
					result = clsContactWnd.Result;
					clsContactWnd.Close();
					clsContactWnd.Dispose();

					if (result != DialogResult.OK)
					{ return; }

					if (clsContactDetails.ContactID == Constants.ZERO || clsContactDetails.ContactID == Constants.C_RETAILPLUS_CUSTOMERID)
					{ return; }

                    // if no guarantor
                    if (!clsCardTypeDetails.WithGuarantor) clsGuarantorDetails = new Data.ContactDetails();

					clsEvent.AddEvent("[" + lblCashier.Text + "] Issuing credit card no to " + clsContactDetails.ContactName);

					Data.Contacts clsContact = new Data.Contacts(mConnection, mTransaction);
                    mConnection = clsContact.Connection; mTransaction = clsContact.Transaction;

					clsContactDetails = clsContact.Details(clsContactDetails.ContactID);
					clsContact.CommitAndDispose();

					if (clsContactDetails.CreditDetails.CreditCardNo != string.Empty && clsContactDetails.CreditDetails.CreditCardNo != null)
					{
						clsEvent.AddEventLn("Cancelled!");
						clsEvent.AddEventLn("Credit Card No: " + clsContactDetails.CreditDetails.CreditCardNo + " was already issued to " + clsContactDetails.ContactName + " on " + clsContactDetails.CreditDetails.CreditAwardDate.ToString("MMM dd, yyyy hh:mm tt"));
						MessageBox.Show("Credit Card No: " + clsContactDetails.CreditDetails.CreditCardNo + " was already issued to " + clsContactDetails.ContactName + " on " + clsContactDetails.CreditDetails.CreditAwardDate.ToString("MMM dd, yyyy hh:mm tt") + "." +
                                        Environment.NewLine + " Please select another customer to issue Credit Card.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Error);
						return;
					}

					clsEvent.AddEvent("[" + lblCashier.Text + "] Issuing credit card no to " + clsContactDetails.ContactName);

					ContactCreditWnd clsContactCreditWnd = new ContactCreditWnd();
					clsContactCreditWnd.Header = "Credit Card Issuance";
                    clsContactCreditWnd.CardTypeDetails = clsCardTypeDetails;
					clsContactCreditWnd.Guarantor = clsGuarantorDetails;
					clsContactCreditWnd.ContactDetails = clsContactDetails;
					clsContactCreditWnd.CreditCardStatus = CreditCardStatus.New;
                    clsContactCreditWnd.TerminalDetails = mclsTerminalDetails;
					clsContactCreditWnd.ShowDialog(this);
					result = clsContactCreditWnd.Result;
					clsContactDetails = clsContactCreditWnd.ContactDetails;
					clsContactCreditWnd.Close();
					clsContactCreditWnd.Dispose();

					if (result == DialogResult.OK)
					{
                        Data.Products clsProducts = new Data.Products(mConnection, mTransaction);
                        mConnection = clsProducts.Connection; mTransaction = clsProducts.Transaction;

                        string strProductBarcode = Data.Products.DEFAULT_CREDIT_CARD_MEMBERSHIP_FEE_BARCODE;
                        //override if with Guarantor
                        if (clsCardTypeDetails.WithGuarantor)
                            strProductBarcode = Data.Products.DEFAULT_SUPER_CARD_MEMBERSHIP_FEE_BARCODE;

                        if (clsProducts.Details(strProductBarcode).ProductID == 0)
                        {
                            if (!clsCardTypeDetails.WithGuarantor)
                                clsProducts.CREATE_CREDIT_CARD_MEMBERSHIP_FEE_BARCODE_PRODUCT();
                            else
                                clsProducts.CREATE_SUPER_CARD_MEMBERSHIP_FEE_BARCODE_PRODUCT();

                            Methods.InsertAuditLog(mclsTerminalDetails, "System Administrator", AccessTypes.RewardCardChange, strProductBarcode + " product has been created coz it's not configured");
                        }
                        clsProducts.CommitAndDispose();

						MessageBox.Show("Credit Card No: " + clsContactDetails.CreditDetails.CreditCardNo + " was issued to " + clsContactDetails.ContactName + "." +
										Environment.NewLine + "Please collect the payment then close the transaction.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Information);

						clsEvent.AddEventLn("Done!", true);
						clsEvent.AddEventLn("Credit Card No: " + clsContactDetails.CreditDetails.CreditCardNo + " was issued to " + clsContactDetails.ContactName + ".", true);

                        LocalDB clsLocalDB = new LocalDB(mConnection, mTransaction);
                        mConnection = clsLocalDB.Connection; mTransaction = clsLocalDB.Transaction;

                        clsEvent.AddEvent("[" + lblCashier.Text + "] Creating " + strProductBarcode + "transaction for customer: ");
						LoadContact(AceSoft.RetailPlus.Data.ContactGroupCategory.CUSTOMER, clsContactDetails);
						if (!this.CreateTransaction()) return;

                        txtBarCode.Text = strProductBarcode;
						ReadBarCode();
						int iRow = dgItems.CurrentRowIndex;

						txtBarCode.Text = "";
						CloseTransaction();

                        clsLocalDB.CommitAndDispose();
					}
					else { clsEvent.AddEventLn("Cancelled!"); }
				}
				catch (Exception ex)
				{ 
                    InsertErrorLogToFile(ex, "ERROR!!! Issuing internal credit-card."); 
                }
				Cursor.Current = Cursors.Default;
			}

		}
Exemple #11
0
        private void EnterCreditItemizePayment()
        {
            if (!SuspendTransactionAndContinue()) return;

            DialogResult loginresult = GetWriteAccessAndLogin(mclsSalesTransactionDetails.CashierID, AccessTypes.EnterCreditPayment);

            if (loginresult == DialogResult.OK)
            {
                LoadOptions();
                if (!CheckIfOKToSell(true)) return;

                ContactSelectWnd clsContactWnd = new ContactSelectWnd();
                clsContactWnd.EnableContactAddUpdate = GetWriteAccess(mclsSalesTransactionDetails.CashierID, AccessTypes.Contacts) == System.Windows.Forms.DialogResult.OK;
                clsContactWnd.SysConfigDetails = mclsSysConfigDetails;
                clsContactWnd.TerminalDetails = mclsTerminalDetails;
                clsContactWnd.HasCreditOnly = true;
                clsContactWnd.ShowDialog(this);
                DialogResult result = clsContactWnd.Result;
                mclsContactDetails = clsContactWnd.Details;
                clsContactWnd.Close();
                clsContactWnd.Dispose();

                if (result == DialogResult.OK)
                {
                    CreditsItemizeWnd creditWnd = new CreditsItemizeWnd();
                    creditWnd.TerminalDetails = mclsTerminalDetails;
                    creditWnd.SysConfigDetails = mclsSysConfigDetails;
                    creditWnd.CashierID = mclsSalesTransactionDetails.CashierID;
                    creditWnd.CashierName = mclsSalesTransactionDetails.CashierName;
                    creditWnd.CustomerDetails = mclsContactDetails;
                    creditWnd.ShowDialog(this);

                    Keys keyData = creditWnd.KeyData;
                    string strTransactionNoToReprint = creditWnd.TransactionNoToReprint;
                    string strTerminalNoToReprint = creditWnd.TerminalNoToReprint;

                    decimal AmountPaid = creditWnd.AmountPayment;
                    decimal CashPayment = creditWnd.CashPayment;
                    decimal ChequePayment = creditWnd.ChequePayment;
                    decimal CreditCardPayment = creditWnd.CreditCardPayment;
                    decimal DebitPayment = creditWnd.DebitPayment;
                    decimal BalanceAmount = creditWnd.BalanceAmount;
                    decimal ChangeAmount = creditWnd.ChangeAmount;

                    DataGridViewSelectedRowCollection dgvItemsSelectedRows = creditWnd.dgvItemsSelectedRows;
                    PaymentTypes PaymentType = creditWnd.PaymentType;
                    ArrayList arrCashPaymentDetails = creditWnd.CashPaymentDetails;
                    ArrayList arrChequePaymentDetails = creditWnd.ChequePaymentDetails;
                    ArrayList arrCreditCardPaymentDetails = creditWnd.CreditCardPaymentDetails;
                    ArrayList arrDebitPaymentDetails = creditWnd.DebitPaymentDetails;
                    result = creditWnd.Result;

                    // do not dispose here coz the dgvItemsSelectedRows is also disposed
                    //creditWnd.Close();
                    //creditWnd.Dispose();

                    if (result == DialogResult.OK)
                    {
                        if (keyData == Keys.F12)
                        {
                            ReprintTransaction(strTransactionNoToReprint, strTerminalNoToReprint);
                            return;
                        }

                        bool boActivateSuspendedAccount = true;

                        if (!mclsContactDetails.CreditDetails.CreditActive)
                        {
                            if (MessageBox.Show("Account is InActive, would you like to re-activate? Remarks: " + Environment.NewLine + mclsContactDetails.Remarks + Environment.NewLine + Environment.NewLine + "Press [yes] to automatically activate or [no] to disregard activation.", "RetailPlus", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.No)
                                boActivateSuspendedAccount = false;
                        }

                        Int64 iCollectionReceiptNo = 0;
                        if (mclsSysConfigDetails.CreditPaymentType == CreditPaymentType.MPC)
                        {
                            decimal decRetValue = 0;
                            if (ShowNoControl(this, out decRetValue, decimal.Parse(iCollectionReceiptNo.ToString()), "Enter Collection Receipt (CR) No.") != System.Windows.Forms.DialogResult.OK)
                            {
                                MessageBox.Show("Sorry you cannot issue a Credit Payment without the collection receipt no. Please enter CR No first.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                                return;
                            }
                            else 
                            {
                                iCollectionReceiptNo = Int64.Parse(decRetValue.ToString());
                            }
                        }

                        Cursor.Current = Cursors.WaitCursor;

                        try
                        {
                            LocalDB clsLocalDB = new LocalDB(mConnection, mTransaction);
                            mConnection = clsLocalDB.Connection; mTransaction = clsLocalDB.Transaction;

                            mclsSalesTransactionDetails = new Data.SalesTransactionDetails();
                            mclsSalesTransactionDetails.TransactionItemsList = new System.Collections.Generic.List<Data.SalesTransactionItemDetails>();
                            mclsSalesTransactionDetails.CustomerDetails = mclsContactDetails;
                            mclsSalesTransactionDetails.TransactionStatus = TransactionStatus.CreditPayment;
                            mclsSalesTransactionDetails.CRNo = iCollectionReceiptNo;

                            Data.Products clsProducts = new Data.Products(mConnection, mTransaction);
                            mConnection = clsProducts.Connection; mTransaction = clsProducts.Transaction;

                            if (clsProducts.Details(Data.Products.DEFAULT_CREDIT_PAYMENT_BARCODE).ProductID == 0)
                            {
                                clsProducts.CREATE_CREDITPAYMENT_PRODUCT();
                                Methods.InsertAuditLog(mclsTerminalDetails, "System Administrator", AccessTypes.EnterCreditPayment, "CREDIT PAYMENT product has been created coz it's not configured");
                            }

                            /************** April 21, 2006: added transaction no. ***************/
                            lblCustomer.Tag = mclsContactDetails.ContactID;
                            lblCustomer.Text = mclsContactDetails.ContactName;

                            clsEvent.AddEvent("[" + lblCashier.Text + "] Creating " + Data.Products.DEFAULT_CREDIT_PAYMENT_BARCODE + " transaction for customer: ");
                            LoadContact(AceSoft.RetailPlus.Data.ContactGroupCategory.CUSTOMER, mclsContactDetails);

                            if (!this.CreateTransaction()) return;
                            
                            txtBarCode.Text = Data.Products.DEFAULT_CREDIT_PAYMENT_BARCODE;
                            ReadBarCode();
                            int iRow = dgItems.CurrentRowIndex;

                            Data.SalesTransactionItemDetails clsItemDetails = getCurrentRowItemDetails();
                            clsItemDetails.Price = AmountPaid;
                            clsItemDetails.Amount = AmountPaid;

                            clsItemDetails = ComputeItemTotal(clsItemDetails); // set the grossales, vat, discounts, etc.(Details);

                            Data.SalesTransactions clsSalesTransactions = new Data.SalesTransactions(mConnection, mTransaction);
                            mConnection = clsSalesTransactions.Connection; mTransaction = clsSalesTransactions.Transaction;

                            ApplyChangeQuantityPriceAmountDetails(iRow, clsItemDetails, "Change Quantity, Price, Amount for Credit Payment");
                            // re-instantiate the status
                            mclsSalesTransactionDetails.TransactionStatus = TransactionStatus.CreditPayment;

                            mclsSalesTransactionDetails.AmountDue = AmountPaid;
                            mclsSalesTransactionDetails.AmountPaid = AmountPaid;
                            mclsSalesTransactionDetails.ChangeAmount = ChangeAmount;
                            mclsSalesTransactionDetails.CashPayment = CashPayment;
                            mclsSalesTransactionDetails.ChequePayment = ChequePayment;
                            mclsSalesTransactionDetails.PaymentType = PaymentType;
                            mclsSalesTransactionDetails.CRNo = iCollectionReceiptNo;

                            // for assignment of payments
                            mclsSalesTransactionDetails.PaymentDetails = AssignArrayListPayments(arrCashPaymentDetails, arrChequePaymentDetails, arrCreditCardPaymentDetails, null, arrDebitPaymentDetails);
                            
                            SavePayments(arrCashPaymentDetails, arrChequePaymentDetails, arrCreditCardPaymentDetails, null, arrDebitPaymentDetails);

                            // save the details of credit payments
                            SaveCreditPayments(dgvItemsSelectedRows, arrCashPaymentDetails, arrChequePaymentDetails, arrCreditCardPaymentDetails, null, arrDebitPaymentDetails, boActivateSuspendedAccount);

                            //OpenDrawerDelegate opendrawerDel = new OpenDrawerDelegate(OpenDrawer);
                            //Invoke(opendrawerDel);
                            OpenDrawer();

                            //update the transaction table 
                            Int64 iTransactionID = Convert.ToInt64(lblTransNo.Tag);
                            string strORNo = ""; // no need to put an OR no for credit payment coz it's already declared before
                            clsSalesTransactions.Close(mclsSalesTransactionDetails.TransactionID, mclsSalesTransactionDetails.TerminalNo, strORNo, 0, 0, AmountPaid, AmountPaid, AmountPaid, 0, 0, 0, 0, 0, 0, 0, 0, 0, DiscountTypes.NotApplicable, 0, 0, 0, 0, 0, 0, 0, 0, 0, AmountPaid, CashPayment, ChequePayment, CreditCardPayment, 0, DebitPayment, 0, 0, 0, 0, PaymentType, null, null, 0, 0, null, null, mclsSalesTransactionDetails.CashierID, lblCashier.Text, TransactionStatus.CreditPayment);
                            
                            // 05Mar2015 : MPC - Update the CRNo as per Ms. Norma
                            clsSalesTransactions.UpdateCRNo(mclsSalesTransactionDetails.BranchID, mclsSalesTransactionDetails.TerminalNo, mclsSalesTransactionDetails.TransactionID, mclsSalesTransactionDetails.CRNo);

                            //UpdateTerminalReportDelegate updateterminalDel = new UpdateTerminalReportDelegate(UpdateTerminalReport);
                            UpdateTerminalReport(TransactionStatus.CreditPayment, 0, 0, AmountPaid, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, CashPayment, ChequePayment, CreditCardPayment, 0, DebitPayment, 0, 0, PaymentType);
                            
                            //UpdateCashierReportDelegate updatecashierDel = new UpdateCashierReportDelegate(UpdateCashierReport);
                            UpdateCashierReport(TransactionStatus.CreditPayment, 0, 0, AmountPaid, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, CashPayment, ChequePayment, CreditCardPayment, 0, DebitPayment, 0, 0, PaymentType);

                            // Sep 24, 2014 : update back the LastCheckInDate to min date
                            Data.Contacts clsContact = new Data.Contacts(mConnection, mTransaction);
                            mConnection = clsContact.Connection; mTransaction = clsContact.Transaction;

                            clsContact.UpdateLastCheckInDate(mclsSalesTransactionDetails.CustomerID, Constants.C_DATE_MIN_VALUE);

                            //enable IsCreditAllowed
                            //already done when paying creditpayment

                            //// 3Nov2014 : automatically deposit the change if credit payment
                            //#region Auto deposit for creditpayment
                            //if (mclsSysConfigDetails.WillDepositChangeOfCreditPayment)
                            //{
                            //    InsertAuditLog(AccessTypes.Deposit, "Auto depositing change of trx #: " + mclsSalesTransactionDetails.TransactionNo + ".");
                            //    clsEvent.AddEventLn("Auto depositing change of trx #: " + mclsSalesTransactionDetails.TransactionNo + ".");

                            //    Data.Deposits clsDeposit = new Data.Deposits(mConnection, mTransaction);
                            //    mConnection = clsDeposit.Connection; mTransaction = clsDeposit.Transaction;

                            //    Data.DepositDetails clsDepositDetails = new Data.DepositDetails()
                            //    {
                            //        BranchDetails = mclsTerminalDetails.BranchDetails,
                            //        TerminalNo = mclsTerminalDetails.TerminalNo,
                            //        Amount = mclsSalesTransactionDetails.ChangeAmount,
                            //        PaymentType = mclsSalesTransactionDetails.PaymentType,
                            //        DateCreated = DateTime.Now,
                            //        CashierID = mclsSalesTransactionDetails.CashierID,
                            //        CashierName = mclsSalesTransactionDetails.CashierName,
                            //        ContactID = mclsSalesTransactionDetails.CustomerDetails.ContactID,
                            //        ContactName = mclsSalesTransactionDetails.CustomerDetails.ContactName,
                            //        Remarks = "Auto deposit from trx #: " + mclsSalesTransactionDetails.TransactionNo + ".",
                            //        CreatedOn = DateTime.Now,
                            //        LastModified = DateTime.Now
                            //    };
                            //    clsDeposit.Insert(clsDepositDetails);

                            //    Data.Contacts clsContact = new Data.Contacts(mConnection, mTransaction);
                            //    mConnection = clsContact.Connection; mTransaction = clsContact.Transaction;

                            //    clsContact.AddDebit(clsDepositDetails.ContactID, clsDepositDetails.Amount);
                            //    clsDeposit.CommitAndDispose();

                            //    InsertAuditLog(AccessTypes.Deposit, "Deposit: type='" + clsDepositDetails.PaymentType.ToString("G") + "' amount='" + clsDepositDetails.Amount.ToString(",##0.#0") + "'" + " @ Branch: " + mclsTerminalDetails.BranchDetails.BranchCode);
                            //    clsEvent.AddEventLn("Done! type=" + clsDepositDetails.PaymentType.ToString("G") + " amount=" + clsDepositDetails.Amount.ToString("#,###.#0"));
                            //}
                            //#endregion

                            clsSalesTransactions.CommitAndDispose();
                            clsLocalDB.CommitAndDispose();

                            InsertAuditLog(AccessTypes.CreditPayment, "Pay credit for " + mclsContactDetails.ContactName + "." + " @ Branch: " + mclsTerminalDetails.BranchDetails.BranchCode);

                            if (mclsTerminalDetails.AutoPrint == PrintingPreference.AskFirst)
                                if (MessageBox.Show("Would you like to print this transaction?", "RetailPlus", MessageBoxButtons.YesNo, MessageBoxIcon.Warning, (mclsSysConfigDetails.isDefaultButtonYesInPrintTransaction ? MessageBoxDefaultButton.Button1 : MessageBoxDefaultButton.Button2)) == DialogResult.Yes)
                                    mclsTerminalDetails.AutoPrint = PrintingPreference.Normal;

                            // print credit payment as normal transaction if not HP
                            if (mclsSalesTransactionDetails.isConsignment)
                            {
                                // 18Feb2015 : Print DR only if the transaction is consignment
                                clsEvent.AddEventLn("      printing delivery receipt as consginment...", true, mclsSysConfigDetails.WillWriteSystemLog);
                                PrintDeliveryReceipt();
                            }
                            else if (mclsSalesTransactionDetails.CustomerDetails.ContactCode == mclsSysConfigDetails.OutOfStockCustomerCode &&
                                (mclsTerminalDetails.ReceiptType == TerminalReceiptType.SalesInvoice ||
                                 mclsTerminalDetails.ReceiptType == TerminalReceiptType.DeliveryReceipt ||
                                mclsTerminalDetails.ReceiptType == TerminalReceiptType.SalesInvoiceAndDR))
                            {
                                clsEvent.AddEventLn("      printing out of stock orders...", true, mclsSysConfigDetails.WillWriteSystemLog);
                                PrintOSReceipt();
                            }
                            else if (mclsSalesTransactionDetails.CustomerDetails.ContactCode == mclsSysConfigDetails.WalkInCustomerCode &&
                            (mclsTerminalDetails.ReceiptType == TerminalReceiptType.SalesInvoice ||
                             mclsTerminalDetails.ReceiptType == TerminalReceiptType.DeliveryReceipt ||
                            mclsTerminalDetails.ReceiptType == TerminalReceiptType.SalesInvoiceAndDR))
                            {
                                clsEvent.AddEventLn("      printing walk-in customer quote form...", true, mclsSysConfigDetails.WillWriteSystemLog);
                                PrintWalkInReceipt();
                            }
                            else if (mclsSysConfigDetails.CreditPaymentType == CreditPaymentType.Houseware)
                            {
                                // do another report for credit payment if HP
                                PrintCreditPayment();

                                // do this twice as per request of CN trader's and CS
                                PrintCreditPayment();
                            }
                            else if (mclsTerminalDetails.ReceiptType == TerminalReceiptType.SalesInvoice ||
                                mclsTerminalDetails.ReceiptType == TerminalReceiptType.DeliveryReceipt ||
                                mclsTerminalDetails.ReceiptType == TerminalReceiptType.SalesInvoiceAndDR)
                            {
                                clsEvent.AddEventLn("      printing sales invoice...", true, mclsSysConfigDetails.WillWriteSystemLog);
                                PrintCollectionReceipt();
                            }
                            else
                            {
                                // Sep 14, 2014 Control printing in mclsFilePrinter.Write
                                //if (mclsTerminalDetails.AutoPrint == PrintingPreference.Normal)	//print items if not yet printed
                                //{
                                foreach (System.Data.DataRow dr in ItemDataTable.Rows)
                                {
                                    if (dr["Quantity"].ToString() != "VOID")
                                    {
                                        string stItemNo = "" + dr["ItemNo"].ToString();
                                        string stProductCode = "" + dr["ProductCode"].ToString();
                                        if (dr["MatrixDescription"].ToString() != string.Empty && dr["MatrixDescription"].ToString() != null) stProductCode += "-" + dr["MatrixDescription"].ToString();
                                        string stProductUnitCode = "" + dr["ProductUnitCode"].ToString();
                                        decimal decQuantity = Convert.ToDecimal(dr["Quantity"]);
                                        decimal decPrice = Convert.ToDecimal(dr["Price"]);
                                        decimal decDiscount = Convert.ToDecimal(dr["Discount"]);
                                        decimal decAmount = Convert.ToDecimal(dr["Amount"]);
                                        decimal decVAT = Convert.ToDecimal(dr["VAT"]);
                                        decimal decEVAT = Convert.ToDecimal(dr["EVAT"]);
                                        decimal decPromoApplied = Convert.ToDecimal(dr["PromoApplied"]);
                                        string stDiscountCode = "" + dr["DiscountCode"].ToString();
                                        DiscountTypes ItemDiscountType = (DiscountTypes)Enum.Parse(typeof(DiscountTypes), dr["ItemDiscountType"].ToString());

                                        PrintItem(stItemNo, stProductCode, stProductUnitCode, decQuantity, decPrice, decDiscount, decPromoApplied, decAmount, decVAT, decEVAT, stDiscountCode, ItemDiscountType);
                                    }
                                }
                                //}
                                // Sep 14, 2014 Control printing in mclsFilePrinter.Write

                                PrintReportFooterSection(true, TransactionStatus.CreditPayment, 0, 0, AmountPaid, 0, 0, AmountPaid, CashPayment, ChequePayment, CreditCardPayment, 0, DebitPayment, 0, 0, ChangeAmount, arrChequePaymentDetails, arrCreditCardPaymentDetails, null, arrDebitPaymentDetails);
                            }
                            
                            this.LoadOptions();
                        }
                        catch (Exception ex)
                        {
                            InsertErrorLogToFile(ex, "ERROR!!! Credit payment procedure. Err Description: ");
                        }
                        Cursor.Current = Cursors.Default;
                    }

                    creditWnd.Close();
                    creditWnd.Dispose();
                }
            }
        }
        /// <summary>
        /// Scrape art from the selected online database to the built-in file location unique to the release instance.
        /// </summary>
        /// <param name="artType">The type of art to scrape. Default is all available art.</param>
        /// <param name="localDB">The database to scrape from. Default is unknown, which allows Robin to cycle through available databases in preferred order.</param>
        /// <returns>Returns a negative integer to indicate the number of scraping attempts that could be tried again, or 0 if all attempts are successfull.</returns>
        public int ScrapeArt(ArtType artType, LocalDB localDB = 0)
        {
            int    returner = 0;
            string url      = null;
            string filePath = null;
            string property = null;

            switch (artType)
            {
            case ArtType.All:
                returner += ScrapeArt(ArtType.BoxFront, localDB);
                returner += ScrapeArt(ArtType.BoxBack, localDB);
                returner += ScrapeArt(ArtType.Banner, localDB);
                returner += ScrapeArt(ArtType.Screen, localDB);
                returner += ScrapeArt(ArtType.Logo, localDB);
                break;

            case ArtType.BoxFront:
                url      = GetBoxFrontURL(localDB);
                filePath = BoxFrontPath;
                property = "BoxFrontPath";
                break;

            case ArtType.BoxBack:
                url      = GetBoxBackURL(localDB);
                filePath = BoxBackPath;
                property = "BoxBackPath";
                break;

            case ArtType.Banner:
                url      = GetBannerURL(localDB);
                filePath = BannerPath;
                property = "BannerPath";
                break;

            case ArtType.Screen:
                url      = GetScreenURL(localDB);
                filePath = ScreenPath;
                property = "ScreenPath";
                break;

            case ArtType.Logo:
                url      = GetLogoURL(localDB);
                filePath = LogoPath;
                property = "LogoPath";
                break;

            case ArtType.Box3D:
                // Needs URL implemented
                break;

            case ArtType.Marquee:
                // Needs URL implemented
                break;

            case ArtType.ControlPanel:
                // Needs URL implemented
                break;

            case ArtType.ControlInformation:
                // Needs URL implemented
                break;

            case ArtType.CartFront:
                // Needs URL implemented
                break;

            case ArtType.CartBack:
                // Needs URL implemented
                break;

            case ArtType.Cart3D:
                // Needs URL implemented
                break;

            default:
                // Not implemented.
                Debug.Assert(false, $"Called Release.ScrapeArt() with the option {artType.Description()}, which is valid only for Platforms. Can't see what it's hurting, but don't do that.");
                break;
            }

            return(Scrape(url, filePath, property, artType.Description()));
        }
Exemple #13
0
        public int AddGroup(IMSGroup g)
        {
            try
            {
                using (var ctx = new LocalDB())
                {
                    Lib.LocalDB.Model.Group newGroup = new Group()
                    {
                        No = g.No,
                        Name = g.Name,
                        Display = g.Display,
                        CoordX = g.CoordX,
                        CoordY = g.CoordY,
                        //UpsList =
                        //    string.Join(",",
                        //        (from upsNo in g.UpsList orderby upsNo ascending select $"{upsNo}").ToArray()),
                        //CduList =
                        //    string.Join(",",
                        //        (from cudNo in g.CduList orderby cudNo ascending select $"{cudNo}").ToArray()),
                        Enabled = g.Enabled,
                        Description = g.Description
                    };
                    using (var trx = new TransactionScope())
                    {
                        ctx.Group.Add(newGroup);
                        ctx.SaveChanges();

                        trx.Complete();
                    }

                    return newGroup.Idx;
                }
            }
            catch (Exception)
            {
                return -1;
            }
        }
Exemple #14
0
 public static void setzeDb(LocalDB data)
 {
     db = data;
 }
Exemple #15
0
        public bool DelCdu(int cduIdx)
        {
            try
            {
                using (var ctx = new LocalDB())
                {
                    var existCdu = (from c in ctx.Cdu where c.Idx == cduIdx select c).DefaultIfEmpty(null).First();
                    if (existCdu == null)
                        return false;

                    using (var trx = new TransactionScope())
                    {
                        ctx.Cdu.Attach(existCdu);
                        ctx.Cdu.Remove(existCdu);
                        ctx.SaveChanges();

                        trx.Complete();
                    }
                    return true;
                }
            }
            catch (Exception)
            {
                return false;
            }
        }
        /// <summary>
        /// Called by the <see cref="T:Quartz.IScheduler" /> when a <see cref="T:Quartz.ITrigger" />
        /// fires that is associated with the <see cref="T:Quartz.IJob" />.
        /// </summary>
        /// <param name="context">The execution context.</param>
        /// <remarks>
        /// The implementation may wish to set a  result object on the
        /// JobExecutionContext before this method exits.  The result itself
        /// is meaningless to Quartz, but may be informative to
        /// <see cref="T:Quartz.IJobListener" />s or
        /// <see cref="T:Quartz.ITriggerListener" />s that are watching the job's
        /// execution.
        /// </remarks>
        public async void Execute(IJobExecutionContext context)
        {
            //logging
            var jobKey = context.JobDetail.Key;

            Log.InfoFormat("BEGIN {0} executing at {1}", jobKey, DateTime.Now.ToString("r"));

            using (var conn = new OracleConnection(CarUtils.GetBancoInstitucional()))
            {
                conn.Open();
                string tid = string.Empty;

                var pathArquivoTemporario = new ArquivoManager().BuscarDiretorioArquivoTemporario(conn);

                if (!pathArquivoTemporario.EndsWith("\\"))
                {
                    pathArquivoTemporario += "\\";
                }
                pathArquivoTemporario += "SICAR\\";

                //Veja se
                var nextItem = LocalDB.PegarProximoItemFila(conn, "enviar-car");

                while (nextItem != null)
                {
                    //Update item as Started
                    //LocalDB.MarcarItemFilaIniciado(conn, nextItem.Id);

                    var item = LocalDB.PegarItemFilaPorId(conn, nextItem.Requisitante);

                    var requisicao = JsonConvert.DeserializeObject <RequisicaoJobCar>(item.Requisicao);
                    tid = Blocos.Data.GerenciadorTransacao.ObterIDAtual();

                    string resultado = "";
                    try
                    {
                        //Atualizar controle de envio do SICAR
                        ControleCarDB.AtualizarControleSICAR(conn, null, requisicao, ControleCarDB.SITUACAO_ENVIO_ENVIANDO, tid);
                        var controleCar = ControleCarDB.ObterItemControleCar(conn, requisicao);

                        var dataCadastroEstadual = ControleCarDB.ObterDataSolicitacao(conn, requisicao.solicitacao_car, requisicao.origem);

                        resultado = await EnviarArquivoCAR(pathArquivoTemporario + nextItem.Requisicao, dataCadastroEstadual);

                        var resultadoEnvio = JsonConvert.DeserializeObject <MensagemRetorno>(resultado);

                        if (resultadoEnvio.codigoResposta == MensagemRetorno.CodigoRespostaErro)
                        {
                            resultado = await EnviarArquivoCAR(pathArquivoTemporario + nextItem.Requisicao, dataCadastroEstadual);

                            resultadoEnvio = JsonConvert.DeserializeObject <MensagemRetorno>(resultado);
                        }

                        //Salvar no diretorio de arquivos do SIMLAM Institucional
                        string arquivoFinal;
                        using (var stream = File.Open(pathArquivoTemporario + nextItem.Requisicao, FileMode.Open, FileAccess.Read, FileShare.Read))
                        {
                            var arquivoManager = new ArquivoManager();
                            arquivoFinal = arquivoManager.Salvar(nextItem.Requisicao, stream, conn);
                        }


                        if (resultadoEnvio.codigoResposta == MensagemRetorno.CodigoRespostaErro ||
                            (resultadoEnvio.codigoResposta == MensagemRetorno.CodigoRespostaInconformidade &&
                             resultadoEnvio.mensagensResposta.Any(r => r.Equals("Foi encontrada sobreposição de 100,00% com outro imóvel já inscrito no CAR que possui os mesmos documentos (CPF e/ou CNPJ).", StringComparison.CurrentCultureIgnoreCase))))
                        {
                            LocalDB.AdicionarItemFila(conn, "revisar-resposta-car", item.Id, nextItem.Requisicao.Substring(0, nextItem.Requisicao.Length - 4), requisicao.empreendimento);
                        }
                        else
                        {
                            //Atualiza a Solicitacao do CAR
                            var situacaoSolicitacao = (resultadoEnvio.codigoResposta == MensagemRetorno.CodigoRespostaSucesso) ? ControleCarDB.SITUACAO_SOLICITACAO_VALIDO : ControleCarDB.SITUACAO_SOLICITACAO_PENDENTE;
                            ControleCarDB.AtualizarSolicitacaoCar(conn, requisicao, situacaoSolicitacao, tid);

                            //Atualizar controle de envio do SICAR
                            ControleCarDB.AtualizarControleSICAR(conn, resultadoEnvio, requisicao, ControleCarDB.SITUACAO_ENVIO_ARQUIVO_ENTREGUE, tid, arquivoFinal);
                        }

                        //Marcar como processado
                        LocalDB.MarcarItemFilaTerminado(conn, nextItem.Id, true, resultado);
                    }
                    catch (Exception ex)
                    {
                        //Marcar como processado registrando a mensagem de erro
                        var msg = ex.Message +
                                  Environment.NewLine +
                                  Environment.NewLine +
                                  resultado;

                        LocalDB.MarcarItemFilaTerminado(conn, nextItem.Id, false, msg);
                        ControleCarDB.AtualizarSolicitacaoCar(conn, requisicao.origem, requisicao.solicitacao_car, ControleCarDB.SITUACAO_SOLICITACAO_PENDENTE, tid);
                        ControleCarDB.AtualizarControleSICAR(conn, null, requisicao, ControleCarDB.SITUACAO_ENVIO_ARQUIVO_REPROVADO, tid);
                    }

                    System.Threading.Thread.Sleep(TimeSpan.FromSeconds(30));

                    nextItem = LocalDB.PegarProximoItemFila(conn, "enviar-car");

                    //Apagar arquivo do diretorio temporário
                    //TODO:NÃO VAI
                    //try
                    //{
                    //	File.Delete(pathArquivoTemporario + nextItem.Requisicao);
                    //}
                    //catch (Exception) { /*ignored*/ }
                }
            }

            Log.InfoFormat("ENDING {0} executing at {1}", jobKey, DateTime.Now.ToString("r"));
        }
Exemple #17
0
        public int AddCdu(IMSCdu cdu)
        {
            try
            {
                using (var ctx = new LocalDB())
                {
                    CDU newCdu = new CDU()
                    {
                        No = cdu.No,
                        Name = cdu.Name,
                        Extendable = cdu.Extendable,
                        IpAddress = cdu.IpAddress,
                        Enabled = cdu.Enabled,
                        InstallAt = cdu.InstallAt,
                        Description = cdu.Description
                    };

                    if (cdu.GroupIdx != null)
                    {
                        var existGroup = (from g in ctx.Group where g.Idx == cdu.GroupIdx select g).DefaultIfEmpty(null).First();
                        if (existGroup == null)
                            return -1;

                        List<int> cduNoList = Regex.Split(existGroup.CduList, @"\D+").Select(n => Convert.ToInt32(n)).ToList();
                        if (!cduNoList.Contains(cdu.GroupIdx.Value))
                        {
                            cduNoList.Add(cdu.GroupIdx.Value);
                            existGroup.CduList = string.Join(",",
                                (from cduNo in cduNoList orderby cduNo ascending select $"{cduNo}").ToArray());
                        }
                        newCdu.GroupIdx = cdu.GroupIdx.Value;
                    }

                    using (var trx = new TransactionScope())
                    {
                        ctx.Cdu.Add(newCdu);
                        ctx.SaveChanges();

                        trx.Complete();
                    }
                    return newCdu.Idx;
                }
            }
            catch (Exception)
            {
                return -2;
            }
        }
Exemple #18
0
 protected async override void OnStart()
 {
     // Handle when your app starts
     await LocalDB.CreateDB();
 }
Exemple #19
0
		private void SplitTransaction()
		{
            if (!mboIsInTransaction)
            {
                MessageBox.Show("No active transaction found.", "RetailPlus", MessageBoxButtons.OK);
                return;
            }
            if (mboIsInTransaction)
            {
                
                SplitPaymentSelectWnd payment = new SplitPaymentSelectWnd();
                payment.MainWndTop = cmd1.Location.Y;
                payment.MainWndLeft = cmd10.Location.X + 1;
                payment.ShowDialog(this);
                DialogResult result = payment.Result;
                SplitPaymentTypes SplitPaymentType = payment.SplitPaymentType;
                payment.Close();
                payment.Dispose();

                if (result == DialogResult.OK)
                {
                    decimal decRetValue = 0;
                    Int32 iNoOfDiners = mclsSalesTransactionDetails.PaxNo;

                    if (SplitPaymentType == SplitPaymentTypes.Equally || SplitPaymentType == SplitPaymentTypes.ByAmount)
                    {
                        if (ShowNoControl(this, out decRetValue, decimal.Parse(iNoOfDiners.ToString()), "Enter no. of diners to pay.") == DialogResult.Cancel)
                            return;
                        else
                        {
                            iNoOfDiners = Int32.Parse(decRetValue.ToString());

                            // just close the transaction if it's just 1 dinner
                            if (iNoOfDiners == 1) { CloseTransaction(); return; }
                        }
                    }

                    DialogResult paymentResult = DialogResult.Cancel;
                    Data.SplitPaymentDetails[] clsSplitPaymentDetails;

                    // get the item details
                    Data.SalesTransactionItems clsItems = new Data.SalesTransactionItems();
                    mConnection = clsItems.Connection; mTransaction = clsItems.Transaction;
                    Data.SalesTransactionItemDetails[] TransactionItems = clsItems.Details(mclsSalesTransactionDetails.TransactionID, mclsSalesTransactionDetails.TransactionDate);
                    mclsSalesTransactionDetails.TransactionItems = TransactionItems;
                    clsItems.CommitAndDispose();

                    switch (SplitPaymentType)
                    {
                        case SplitPaymentTypes.Equally:

                            #region Equal payments

                            //insert payment details
                            SplitPaymentEqualWnd clsSplitPaymentEqualWnd = new SplitPaymentEqualWnd();
                            clsSplitPaymentEqualWnd.TerminalDetails = mclsTerminalDetails;
                            clsSplitPaymentEqualWnd.SysConfigDetails = mclsSysConfigDetails;
                            clsSplitPaymentEqualWnd.CustomerDetails = mclsContactDetails;
                            clsSplitPaymentEqualWnd.SalesTransactionDetails = mclsSalesTransactionDetails;
                            clsSplitPaymentEqualWnd.CreditCardSwiped = mboCreditCardSwiped;
                            clsSplitPaymentEqualWnd.IsRefund = mboIsRefund;
                            clsSplitPaymentEqualWnd.IsCreditChargeExcluded = false; //mTopItemDetails.IsCreditChargeExcluded;
                            clsSplitPaymentEqualWnd.NoOfDiners = iNoOfDiners;
                            clsSplitPaymentEqualWnd.ShowDialog(this);
                            paymentResult = clsSplitPaymentEqualWnd.Result;
                            clsSplitPaymentDetails = clsSplitPaymentEqualWnd.arrSplitPaymentDetails;
                            clsSplitPaymentEqualWnd.Close();
                            clsSplitPaymentEqualWnd.Dispose();

                            if (paymentResult == DialogResult.OK)
                            {
                                //save the old in a temp Details
                                Data.SalesTransactionDetails tmpSalesTransactionDetails = mclsSalesTransactionDetails;

                                LocalDB clsLocalDB = new LocalDB();
                                mConnection = clsLocalDB.Connection; mTransaction = clsLocalDB.Transaction;

                                // save all the payments made
                                foreach (Data.SplitPaymentDetails det in clsSplitPaymentDetails)
                                {
                                    mclsSalesTransactionDetails = tmpSalesTransactionDetails;
                                    mclsSalesTransactionDetails.TransactionItems = TransactionItems;

                                    decimal decSplitPercentage = mclsSalesTransactionDetails.SubTotal - mclsSalesTransactionDetails.Discount + mclsSalesTransactionDetails.Charge;
                                    decSplitPercentage = det.AmountDue / decSplitPercentage;

                                    SetGridItems();
                                    SetGridItemsWidth();

                                    #region create the transaction
                                    CreateTransaction();
                                    #endregion

                                    #region punch all the items divided by the NoOfDiner

                                    foreach (Data.SalesTransactionItemDetails item in tmpSalesTransactionDetails.TransactionItems)
                                    {
                                        Data.SalesTransactionItemDetails clsDetails = item;
                                        //clsDetails.Amount = item.Amount / iNoOfDiners;
                                        //clsDetails.Price = item.Price / iNoOfDiners;
                                        //clsDetails.PurchasePrice = item.PurchasePrice / iNoOfDiners;
                                        //clsDetails.Discount = item.Discount / iNoOfDiners;
                                        //clsDetails.Quantity = item.Quantity / iNoOfDiners;
                                        //clsDetails.Amount = item.Amount * decSplitPercentage;
                                        //clsDetails.Price = item.Price * decSplitPercentage;
                                        //clsDetails.PurchasePrice = item.PurchasePrice * decSplitPercentage;
                                        //clsDetails.Discount = item.Discount * decSplitPercentage;
                                        clsDetails.Quantity = item.Quantity * decSplitPercentage;

                                        AddItem(clsDetails);
                                    }
                                    #endregion

                                    #region Apply existing discount if required

                                    if (tmpSalesTransactionDetails.Discount != 0)
                                    {
                                        if (tmpSalesTransactionDetails.TransDiscountType == DiscountTypes.NotApplicable)
                                        {
                                            lblTransDiscount.Text = "Less 0% / 0.00";
                                        }
                                        lblTransDiscount.Tag = tmpSalesTransactionDetails.TransDiscountType.ToString("d");
                                        mclsSalesTransactionDetails.TransDiscountType = tmpSalesTransactionDetails.TransDiscountType;
                                        mclsSalesTransactionDetails.TransDiscount = tmpSalesTransactionDetails.TransDiscount;
                                        mclsSalesTransactionDetails.Discount = tmpSalesTransactionDetails.Discount / iNoOfDiners;
                                        mclsSalesTransactionDetails.DiscountableAmount = tmpSalesTransactionDetails.DiscountableAmount / iNoOfDiners;
                                        mclsSalesTransactionDetails.DiscountCode = tmpSalesTransactionDetails.DiscountCode;
                                        mclsSalesTransactionDetails.DiscountRemarks = tmpSalesTransactionDetails.DiscountRemarks;

                                        ComputeSubTotal(); setTotalDetails();

                                        if (mclsSalesTransactionDetails.Discount <= mclsSalesTransactionDetails.DiscountableAmount)
                                        {
                                            Data.SalesTransactions clsSalesTransactions = new Data.SalesTransactions(mConnection, mTransaction);
                                            mConnection = clsSalesTransactions.Connection; mTransaction = clsSalesTransactions.Transaction;

                                            clsSalesTransactions.UpdateSubTotal(mclsSalesTransactionDetails.TransactionID, mclsSalesTransactionDetails.ItemSold, mclsSalesTransactionDetails.QuantitySold, mclsSalesTransactionDetails.GrossSales, mclsSalesTransactionDetails.SubTotal, mclsSalesTransactionDetails.NetSales, mclsSalesTransactionDetails.ItemsDiscount, mclsSalesTransactionDetails.SNRItemsDiscount, mclsSalesTransactionDetails.PWDItemsDiscount, mclsSalesTransactionDetails.OtherItemsDiscount, mclsSalesTransactionDetails.Discount, mclsSalesTransactionDetails.SNRDiscount, mclsSalesTransactionDetails.PWDDiscount, mclsSalesTransactionDetails.OtherDiscount, mclsSalesTransactionDetails.TransDiscount, mclsSalesTransactionDetails.TransDiscountType, mclsSalesTransactionDetails.VAT, mclsSalesTransactionDetails.VATableAmount, mclsSalesTransactionDetails.ZeroRatedSales, mclsSalesTransactionDetails.NonVATableAmount, mclsSalesTransactionDetails.VATExempt, mclsSalesTransactionDetails.EVAT, mclsSalesTransactionDetails.EVATableAmount, mclsSalesTransactionDetails.NonEVATableAmount, mclsSalesTransactionDetails.LocalTax, mclsSalesTransactionDetails.DiscountCode, mclsSalesTransactionDetails.DiscountRemarks, mclsSalesTransactionDetails.Charge, mclsSalesTransactionDetails.ChargeAmount, mclsSalesTransactionDetails.ChargeCode, mclsSalesTransactionDetails.ChargeRemarks, mclsSalesTransactionDetails.ChargeType);
                                            clsSalesTransactions.CommitAndDispose();

                                            InsertAuditLog(AccessTypes.Discounts, "Apply transaction discount for " + mclsSalesTransactionDetails.Discount.ToString("#,###.#0") + ". Tran. #".PadRight(15) + ":" + lblTransNo.Text + " @ Branch: " + mclsTerminalDetails.BranchDetails.BranchCode);
                                        }
                                    }

                                    #endregion

                                    Data.SalesTransactionItemDetails mTopItemDetails = getCurrentRowItemDetails();

                                    #region close the transaction

                                    // override the customerinformation if it's paid with in-house creditcard
                                    if (det.clsCreditorDetails.ContactID != 0 && det.clsCreditorDetails.ContactID != mclsSalesTransactionDetails.CustomerID)
                                    {
                                        LoadContact(Data.ContactGroupCategory.CUSTOMER, det.clsCreditorDetails);
                                    }

                                    //close then print 1 by 1
                                    CloseTransaction(mTopItemDetails,
                                    det.AmountPaid, det.ChangeAmount, det.BalanceAmount, det.CashPayment, det.ChequePayment,
                                    det.CreditCardPayment, det.CreditPayment, det.CreditChargeAmount, det.DebitPayment,
                                    det.RewardConvertedPayment, det.RewardPointsPayment, det.PaymentType,
                                    det.arrCashPaymentDetails, det.arrChequePaymentDetails, det.arrCreditCardPaymentDetails,
                                    det.arrCreditPaymentDetails, det.arrDebitPaymentDetails);

                                    #endregion

                                    clsEvent.AddEventLn(" Loading Options...", true, mclsSysConfigDetails.WillWriteSystemLog);
                                    this.LoadOptions();
                                }

                                #region void the old transaction

                                mclsSalesTransactionDetails = tmpSalesTransactionDetails;

                                // load the transaction
                                LoadTransaction(tmpSalesTransactionDetails.TransactionNo, tmpSalesTransactionDetails.TerminalNo);

                                clsEvent.AddEventLn("[" + lblCashier.Text + "] Voiding transaction no. " + lblTransNo.Text, true);

                                System.Data.DataTable dt = (System.Data.DataTable)dgItems.DataSource;
                                for (int x = 0; x < dt.Rows.Count; x++)
                                {
                                    dgItems.CurrentRowIndex = x;
                                    Data.SalesTransactionItemDetails Details = getCurrentRowItemDetails();

                                    if (Details.TransactionItemStatus != TransactionItemStatus.Void)
                                    {
                                        Details.TransactionItemStatus = TransactionItemStatus.Void;
                                        ReservedAndCommitItem(Details, Details.TransactionItemStatus);
                                    }
                                }

                                //UpdateTerminalReportDelegate updateterminalDel = new UpdateTerminalReportDelegate(UpdateTerminalReport);
                                UpdateTerminalReport(TransactionStatus.Void, mclsSalesTransactionDetails.ItemSold, mclsSalesTransactionDetails.QuantitySold, mclsSalesTransactionDetails.SubTotal, mclsSalesTransactionDetails.Discount, mclsSalesTransactionDetails.ItemsDiscount, mclsSalesTransactionDetails.SNRItemsDiscount, mclsSalesTransactionDetails.PWDItemsDiscount, mclsSalesTransactionDetails.OtherItemsDiscount, mclsSalesTransactionDetails.Charge, mclsSalesTransactionDetails.VAT, mclsSalesTransactionDetails.VATableAmount, mclsSalesTransactionDetails.ZeroRatedSales, mclsSalesTransactionDetails.NonVATableAmount, mclsSalesTransactionDetails.VATExempt, mclsSalesTransactionDetails.EVAT, mclsSalesTransactionDetails.EVATableAmount, mclsSalesTransactionDetails.NonEVATableAmount, mclsSalesTransactionDetails.LocalTax, 0, 0, 0, 0, 0, 0, 0, PaymentTypes.NotYetAssigned);

                                //UpdateCashierReportDelegate updatecashierDel = new UpdateCashierReportDelegate(UpdateCashierReport);
                                UpdateCashierReport(TransactionStatus.Void, mclsSalesTransactionDetails.ItemSold, mclsSalesTransactionDetails.QuantitySold, mclsSalesTransactionDetails.SubTotal, mclsSalesTransactionDetails.Discount, mclsSalesTransactionDetails.ItemsDiscount, mclsSalesTransactionDetails.SNRItemsDiscount, mclsSalesTransactionDetails.PWDItemsDiscount, mclsSalesTransactionDetails.OtherItemsDiscount, mclsSalesTransactionDetails.Charge, mclsSalesTransactionDetails.VAT, mclsSalesTransactionDetails.VATableAmount, mclsSalesTransactionDetails.ZeroRatedSales, mclsSalesTransactionDetails.NonVATableAmount, mclsSalesTransactionDetails.VATExempt, mclsSalesTransactionDetails.EVAT, mclsSalesTransactionDetails.EVATableAmount, mclsSalesTransactionDetails.NonEVATableAmount, mclsSalesTransactionDetails.LocalTax, 0, 0, 0, 0, 0, 0, 0, PaymentTypes.NotYetAssigned);

                                new Data.SalesTransactions(mConnection, mTransaction).Void(mclsSalesTransactionDetails.TransactionID, mclsSalesTransactionDetails.ItemSold, mclsSalesTransactionDetails.QuantitySold, mclsSalesTransactionDetails.GrossSales, mclsSalesTransactionDetails.SubTotal, mclsSalesTransactionDetails.NetSales, mclsSalesTransactionDetails.ItemsDiscount, mclsSalesTransactionDetails.SNRItemsDiscount, mclsSalesTransactionDetails.PWDItemsDiscount, mclsSalesTransactionDetails.OtherItemsDiscount, mclsSalesTransactionDetails.Discount, mclsSalesTransactionDetails.SNRDiscount, mclsSalesTransactionDetails.PWDDiscount, mclsSalesTransactionDetails.OtherDiscount, mclsSalesTransactionDetails.TransDiscount, mclsSalesTransactionDetails.TransDiscountType, mclsSalesTransactionDetails.VAT, mclsSalesTransactionDetails.VATableAmount, mclsSalesTransactionDetails.ZeroRatedSales, mclsSalesTransactionDetails.NonVATableAmount, mclsSalesTransactionDetails.VATExempt, mclsSalesTransactionDetails.EVAT, mclsSalesTransactionDetails.EVATableAmount, mclsSalesTransactionDetails.NonEVATableAmount, mclsSalesTransactionDetails.LocalTax, mclsSalesTransactionDetails.Charge, mclsSalesTransactionDetails.CashierID, mclsSalesTransactionDetails.CashierName);

                                new Data.SalesTransactions(mConnection, mTransaction).UpdateTerminalNo(mclsSalesTransactionDetails.TransactionID, lblTerminalNo.Text);

                                // Sep 24, 2014 : update back the LastCheckInDate to min date
                                Data.Contacts clsContact = new Data.Contacts(mConnection, mTransaction);
                                mConnection = clsContact.Connection; mTransaction = clsContact.Transaction;

                                clsContact.UpdateLastCheckInDate(mclsSalesTransactionDetails.CustomerID, Constants.C_DATE_MIN_VALUE);

                                InsertAuditLog(AccessTypes.VoidTransaction, "VOID transaction #:" + lblTransNo.Text + " @ Branch: " + mclsTerminalDetails.BranchDetails.BranchCode);
                                clsEvent.AddEventLn("Done transaction no. " + lblTransNo.Text + " has been void.", true);

                                #endregion

                                clsEvent.AddEventLn(" Loading Options...", true, mclsSysConfigDetails.WillWriteSystemLog);
                                this.LoadOptions();

                                // commit all in the database
                                clsLocalDB.CommitAndDispose();
                            }

                            #endregion
                            break;
                        case SplitPaymentTypes.ByItem:

                            #region Item Payment

                                //insert payment details
                            SplitPaymentItemWnd clsSplitPaymentItemWnd = new SplitPaymentItemWnd();
                            clsSplitPaymentItemWnd.TerminalDetails = mclsTerminalDetails;
                            clsSplitPaymentItemWnd.SysConfigDetails = mclsSysConfigDetails;
                            clsSplitPaymentItemWnd.CustomerDetails = mclsContactDetails;
                            clsSplitPaymentItemWnd.SalesTransactionDetails = mclsSalesTransactionDetails;
                            clsSplitPaymentItemWnd.CreditCardSwiped = mboCreditCardSwiped;
                            clsSplitPaymentItemWnd.IsRefund = mboIsRefund;
                            clsSplitPaymentItemWnd.IsCreditChargeExcluded = false; //mTopItemDetails.IsCreditChargeExcluded;
                            clsSplitPaymentItemWnd.NoOfDiners = iNoOfDiners;
                            clsSplitPaymentItemWnd.SalesTransactionItemDetails = mclsSalesTransactionDetails.TransactionItems;
                            clsSplitPaymentItemWnd.ShowDialog(this);
                            paymentResult = clsSplitPaymentItemWnd.Result;
                            clsSplitPaymentDetails = clsSplitPaymentItemWnd.arrSplitPaymentDetails;
                            clsSplitPaymentItemWnd.Close();
                            clsSplitPaymentItemWnd.Dispose();

                            if (paymentResult == DialogResult.OK)
                            {
                                //save the old in a temp Details
                                Data.SalesTransactionDetails tmpSalesTransactionDetails = mclsSalesTransactionDetails;

                                LocalDB clsLocalDB = new LocalDB();
                                mConnection = clsLocalDB.Connection; mTransaction = clsLocalDB.Transaction;

                                // save all the payments made
                                foreach (Data.SplitPaymentDetails det in clsSplitPaymentDetails)
                                {
                                    mclsSalesTransactionDetails = tmpSalesTransactionDetails;
                                    mclsSalesTransactionDetails.TransactionItems = TransactionItems;

                                    SetGridItems();
                                    SetGridItemsWidth();

                                    #region create the transaction
                                    CreateTransaction();
                                    #endregion

                                    #region punch all the items for the selected payee

                                    foreach (Data.SalesTransactionItemDetails item in tmpSalesTransactionDetails.TransactionItems)
                                    {
                                        if (item.PaxNo == det.PaxNo)
                                        {
                                            Data.SalesTransactionItemDetails clsDetails = item;
                                            //clsDetails.Amount = item.Amount * decSplitPercentage;
                                            //clsDetails.Price = item.Price * decSplitPercentage;
                                            //clsDetails.PurchasePrice = item.PurchasePrice * decSplitPercentage;
                                            //clsDetails.Discount = item.Discount * decSplitPercentage;
                                            //clsDetails.Quantity = item.Quantity * decSplitPercentage;

                                            AddItem(clsDetails);
                                        }
                                    }
                                    #endregion

                                    #region Apply existing discount if required

                                    if (tmpSalesTransactionDetails.Discount != 0)
                                    {
                                        if (tmpSalesTransactionDetails.TransDiscountType == DiscountTypes.NotApplicable)
                                        {
                                            lblTransDiscount.Text = "Less 0% / 0.00";
                                        }
                                        lblTransDiscount.Tag = tmpSalesTransactionDetails.TransDiscountType.ToString("d");
                                        mclsSalesTransactionDetails.TransDiscountType = tmpSalesTransactionDetails.TransDiscountType;
                                        mclsSalesTransactionDetails.TransDiscount = tmpSalesTransactionDetails.TransDiscount;
                                        mclsSalesTransactionDetails.Discount = tmpSalesTransactionDetails.Discount / iNoOfDiners;
                                        mclsSalesTransactionDetails.DiscountableAmount = tmpSalesTransactionDetails.DiscountableAmount / iNoOfDiners;
                                        mclsSalesTransactionDetails.DiscountCode = tmpSalesTransactionDetails.DiscountCode;
                                        mclsSalesTransactionDetails.DiscountRemarks = tmpSalesTransactionDetails.DiscountRemarks;

                                        ComputeSubTotal(); setTotalDetails();

                                        if (mclsSalesTransactionDetails.Discount <= mclsSalesTransactionDetails.DiscountableAmount)
                                        {
                                            Data.SalesTransactions clsSalesTransactions = new Data.SalesTransactions(mConnection, mTransaction);
                                            mConnection = clsSalesTransactions.Connection; mTransaction = clsSalesTransactions.Transaction;

                                            clsSalesTransactions.UpdateSubTotal(mclsSalesTransactionDetails.TransactionID, mclsSalesTransactionDetails.ItemSold, mclsSalesTransactionDetails.QuantitySold, mclsSalesTransactionDetails.GrossSales, mclsSalesTransactionDetails.SubTotal, mclsSalesTransactionDetails.NetSales, mclsSalesTransactionDetails.ItemsDiscount, mclsSalesTransactionDetails.SNRItemsDiscount, mclsSalesTransactionDetails.PWDItemsDiscount, mclsSalesTransactionDetails.OtherItemsDiscount, mclsSalesTransactionDetails.Discount, mclsSalesTransactionDetails.SNRDiscount, mclsSalesTransactionDetails.PWDDiscount, mclsSalesTransactionDetails.OtherDiscount, mclsSalesTransactionDetails.TransDiscount, mclsSalesTransactionDetails.TransDiscountType, mclsSalesTransactionDetails.VAT, mclsSalesTransactionDetails.VATableAmount, mclsSalesTransactionDetails.ZeroRatedSales, mclsSalesTransactionDetails.NonVATableAmount, mclsSalesTransactionDetails.VATExempt, mclsSalesTransactionDetails.EVAT, mclsSalesTransactionDetails.EVATableAmount, mclsSalesTransactionDetails.NonEVATableAmount, mclsSalesTransactionDetails.LocalTax, mclsSalesTransactionDetails.DiscountCode, mclsSalesTransactionDetails.DiscountRemarks, mclsSalesTransactionDetails.Charge, mclsSalesTransactionDetails.ChargeAmount, mclsSalesTransactionDetails.ChargeCode, mclsSalesTransactionDetails.ChargeRemarks, mclsSalesTransactionDetails.ChargeType);
                                            clsSalesTransactions.CommitAndDispose();

                                            InsertAuditLog(AccessTypes.Discounts, "Apply transaction discount for " + mclsSalesTransactionDetails.Discount.ToString("#,###.#0") + ". Tran. #".PadRight(15) + ":" + lblTransNo.Text + " @ Branch: " + mclsTerminalDetails.BranchDetails.BranchCode);
                                        }
                                    }

                                    #endregion

                                    Data.SalesTransactionItemDetails mTopItemDetails = getCurrentRowItemDetails();

                                    #region close the transaction

                                    // override the customerinformation if it's paid with in-house creditcard
                                    if (det.clsCreditorDetails.ContactID != 0 && det.clsCreditorDetails.ContactID != mclsSalesTransactionDetails.CustomerID)
                                    {
                                        LoadContact(Data.ContactGroupCategory.CUSTOMER, det.clsCreditorDetails);
                                    }

                                    //close then print 1 by 1
                                    CloseTransaction(mTopItemDetails,
                                    det.AmountPaid, det.ChangeAmount, det.BalanceAmount, det.CashPayment, det.ChequePayment,
                                    det.CreditCardPayment, det.CreditPayment, det.CreditChargeAmount, det.DebitPayment,
                                    det.RewardConvertedPayment, det.RewardPointsPayment, det.PaymentType,
                                    det.arrCashPaymentDetails, det.arrChequePaymentDetails, det.arrCreditCardPaymentDetails,
                                    det.arrCreditPaymentDetails, det.arrDebitPaymentDetails);

                                    #endregion

                                    clsEvent.AddEventLn(" Loading Options...", true, mclsSysConfigDetails.WillWriteSystemLog);
                                    this.LoadOptions();
                                }

                                #region void the old transaction

                                mclsSalesTransactionDetails = tmpSalesTransactionDetails;

                                // load the transaction
                                LoadTransaction(tmpSalesTransactionDetails.TransactionNo, tmpSalesTransactionDetails.TerminalNo);

                                clsEvent.AddEventLn("[" + lblCashier.Text + "] Voiding transaction no. " + lblTransNo.Text, true);

                                System.Data.DataTable dt = (System.Data.DataTable)dgItems.DataSource;
                                for (int x = 0; x < dt.Rows.Count; x++)
                                {
                                    dgItems.CurrentRowIndex = x;
                                    Data.SalesTransactionItemDetails Details = getCurrentRowItemDetails();

                                    if (Details.TransactionItemStatus != TransactionItemStatus.Void)
                                    {
                                        Details.TransactionItemStatus = TransactionItemStatus.Void;
                                        ReservedAndCommitItem(Details, Details.TransactionItemStatus);
                                    }
                                }

                                //UpdateTerminalReportDelegate updateterminalDel = new UpdateTerminalReportDelegate(UpdateTerminalReport);
                                UpdateTerminalReport(TransactionStatus.Void, mclsSalesTransactionDetails.ItemSold, mclsSalesTransactionDetails.QuantitySold, mclsSalesTransactionDetails.SubTotal, mclsSalesTransactionDetails.Discount, mclsSalesTransactionDetails.ItemsDiscount, mclsSalesTransactionDetails.SNRItemsDiscount, mclsSalesTransactionDetails.PWDItemsDiscount, mclsSalesTransactionDetails.OtherItemsDiscount, mclsSalesTransactionDetails.Charge, mclsSalesTransactionDetails.VAT, mclsSalesTransactionDetails.VATableAmount, mclsSalesTransactionDetails.ZeroRatedSales, mclsSalesTransactionDetails.NonVATableAmount, mclsSalesTransactionDetails.VATExempt, mclsSalesTransactionDetails.EVAT, mclsSalesTransactionDetails.EVATableAmount, mclsSalesTransactionDetails.NonEVATableAmount, mclsSalesTransactionDetails.LocalTax, 0, 0, 0, 0, 0, 0, 0, PaymentTypes.NotYetAssigned);

                                //UpdateCashierReportDelegate updatecashierDel = new UpdateCashierReportDelegate(UpdateCashierReport);
                                UpdateCashierReport(TransactionStatus.Void, mclsSalesTransactionDetails.ItemSold, mclsSalesTransactionDetails.QuantitySold, mclsSalesTransactionDetails.SubTotal, mclsSalesTransactionDetails.Discount, mclsSalesTransactionDetails.ItemsDiscount, mclsSalesTransactionDetails.SNRItemsDiscount, mclsSalesTransactionDetails.PWDItemsDiscount, mclsSalesTransactionDetails.OtherItemsDiscount, mclsSalesTransactionDetails.Charge, mclsSalesTransactionDetails.VAT, mclsSalesTransactionDetails.VATableAmount, mclsSalesTransactionDetails.ZeroRatedSales, mclsSalesTransactionDetails.NonVATableAmount, mclsSalesTransactionDetails.VATExempt, mclsSalesTransactionDetails.EVAT, mclsSalesTransactionDetails.EVATableAmount, mclsSalesTransactionDetails.NonEVATableAmount, mclsSalesTransactionDetails.LocalTax, 0, 0, 0, 0, 0, 0, 0, PaymentTypes.NotYetAssigned);

                                new Data.SalesTransactions(mConnection, mTransaction).Void(mclsSalesTransactionDetails.TransactionID, mclsSalesTransactionDetails.ItemSold, mclsSalesTransactionDetails.QuantitySold, mclsSalesTransactionDetails.GrossSales, mclsSalesTransactionDetails.SubTotal, mclsSalesTransactionDetails.NetSales, mclsSalesTransactionDetails.ItemsDiscount, mclsSalesTransactionDetails.SNRItemsDiscount, mclsSalesTransactionDetails.PWDItemsDiscount, mclsSalesTransactionDetails.OtherItemsDiscount, mclsSalesTransactionDetails.Discount, mclsSalesTransactionDetails.SNRDiscount, mclsSalesTransactionDetails.PWDDiscount, mclsSalesTransactionDetails.OtherDiscount, mclsSalesTransactionDetails.TransDiscount, mclsSalesTransactionDetails.TransDiscountType, mclsSalesTransactionDetails.VAT, mclsSalesTransactionDetails.VATableAmount, mclsSalesTransactionDetails.ZeroRatedSales, mclsSalesTransactionDetails.NonVATableAmount, mclsSalesTransactionDetails.VATExempt, mclsSalesTransactionDetails.EVAT, mclsSalesTransactionDetails.EVATableAmount, mclsSalesTransactionDetails.NonEVATableAmount, mclsSalesTransactionDetails.LocalTax, mclsSalesTransactionDetails.Charge, mclsSalesTransactionDetails.CashierID, mclsSalesTransactionDetails.CashierName);

                                new Data.SalesTransactions(mConnection, mTransaction).UpdateTerminalNo(mclsSalesTransactionDetails.TransactionID, lblTerminalNo.Text);

                                // Sep 24, 2014 : update back the LastCheckInDate to min date
                                Data.Contacts clsContact = new Data.Contacts(mConnection, mTransaction);
                                mConnection = clsContact.Connection; mTransaction = clsContact.Transaction;

                                clsContact.UpdateLastCheckInDate(mclsSalesTransactionDetails.CustomerID, Constants.C_DATE_MIN_VALUE);

                                InsertAuditLog(AccessTypes.VoidTransaction, "VOID transaction #:" + lblTransNo.Text + " @ Branch: " + mclsTerminalDetails.BranchDetails.BranchCode);
                                clsEvent.AddEventLn("Done transaction no. " + lblTransNo.Text + " has been void.", true);

                                #endregion

                                clsEvent.AddEventLn(" Loading Options...", true, mclsSysConfigDetails.WillWriteSystemLog);
                                this.LoadOptions();

                                // commit all in the database
                                clsLocalDB.CommitAndDispose();
                            }

                            #endregion
                            break;
                        case SplitPaymentTypes.ByAmount:

                            #region Amount Payments

                                //insert payment details
                            SplitPaymentAmountWnd clsSplitPaymentAmountWnd = new SplitPaymentAmountWnd();
                            clsSplitPaymentAmountWnd.TerminalDetails = mclsTerminalDetails;
                            clsSplitPaymentAmountWnd.SysConfigDetails = mclsSysConfigDetails;
                            clsSplitPaymentAmountWnd.CustomerDetails = mclsContactDetails;
                            clsSplitPaymentAmountWnd.SalesTransactionDetails = mclsSalesTransactionDetails;
                            clsSplitPaymentAmountWnd.CreditCardSwiped = mboCreditCardSwiped;
                            clsSplitPaymentAmountWnd.IsRefund = mboIsRefund;
                            clsSplitPaymentAmountWnd.IsCreditChargeExcluded = false; //mTopItemDetails.IsCreditChargeExcluded;
                            clsSplitPaymentAmountWnd.NoOfDiners = iNoOfDiners;
                            clsSplitPaymentAmountWnd.ShowDialog(this);
                            paymentResult = clsSplitPaymentAmountWnd.Result;
                            clsSplitPaymentDetails = clsSplitPaymentAmountWnd.arrSplitPaymentDetails;
                            clsSplitPaymentAmountWnd.Close();
                            clsSplitPaymentAmountWnd.Dispose();

                            if (paymentResult == DialogResult.OK)
                            {
                                //save the old in a temp Details
                                Data.SalesTransactionDetails tmpSalesTransactionDetails = mclsSalesTransactionDetails;

                                LocalDB clsLocalDB = new LocalDB();
                                mConnection = clsLocalDB.Connection; mTransaction = clsLocalDB.Transaction;

                                // save all the payments made
                                foreach (Data.SplitPaymentDetails det in clsSplitPaymentDetails)
                                {
                                    mclsSalesTransactionDetails = tmpSalesTransactionDetails;
                                    mclsSalesTransactionDetails.TransactionItems = TransactionItems;

                                    decimal decSplitPercentage = mclsSalesTransactionDetails.SubTotal - mclsSalesTransactionDetails.Discount + mclsSalesTransactionDetails.Charge;
                                    decSplitPercentage = det.AmountDue / decSplitPercentage;

                                    SetGridItems();
                                    SetGridItemsWidth();

                                    #region create the transaction
                                    CreateTransaction();
                                    #endregion

                                    #region punch all the items divided by the NoOfDiner

                                    foreach (Data.SalesTransactionItemDetails item in tmpSalesTransactionDetails.TransactionItems)
                                    {
                                        Data.SalesTransactionItemDetails clsDetails = item;
                                        //clsDetails.Amount = item.Amount * decSplitPercentage;
                                        //clsDetails.Price = item.Price * decSplitPercentage;
                                        //clsDetails.PurchasePrice = item.PurchasePrice * decSplitPercentage;
                                        //clsDetails.Discount = item.Discount * decSplitPercentage;
                                        clsDetails.Quantity = item.Quantity * decSplitPercentage;

                                        AddItem(clsDetails);
                                    }
                                    #endregion

                                    #region Apply existing discount if required

                                    if (tmpSalesTransactionDetails.Discount != 0)
                                    {
                                        if (tmpSalesTransactionDetails.TransDiscountType == DiscountTypes.NotApplicable)
                                        {
                                            lblTransDiscount.Text = "Less 0% / 0.00";
                                        }
                                        lblTransDiscount.Tag = tmpSalesTransactionDetails.TransDiscountType.ToString("d");
                                        mclsSalesTransactionDetails.TransDiscountType = tmpSalesTransactionDetails.TransDiscountType;
                                        mclsSalesTransactionDetails.TransDiscount = tmpSalesTransactionDetails.TransDiscount;
                                        mclsSalesTransactionDetails.Discount = tmpSalesTransactionDetails.Discount / iNoOfDiners;
                                        mclsSalesTransactionDetails.DiscountableAmount = tmpSalesTransactionDetails.DiscountableAmount / iNoOfDiners;
                                        mclsSalesTransactionDetails.DiscountCode = tmpSalesTransactionDetails.DiscountCode;
                                        mclsSalesTransactionDetails.DiscountRemarks = tmpSalesTransactionDetails.DiscountRemarks;

                                        ComputeSubTotal(); setTotalDetails();

                                        if (mclsSalesTransactionDetails.Discount <= mclsSalesTransactionDetails.DiscountableAmount)
                                        {
                                            Data.SalesTransactions clsSalesTransactions = new Data.SalesTransactions(mConnection, mTransaction);
                                            mConnection = clsSalesTransactions.Connection; mTransaction = clsSalesTransactions.Transaction;

                                            clsSalesTransactions.UpdateSubTotal(mclsSalesTransactionDetails.TransactionID, mclsSalesTransactionDetails.ItemSold, mclsSalesTransactionDetails.QuantitySold, mclsSalesTransactionDetails.GrossSales, mclsSalesTransactionDetails.SubTotal, mclsSalesTransactionDetails.NetSales, mclsSalesTransactionDetails.ItemsDiscount, mclsSalesTransactionDetails.SNRItemsDiscount, mclsSalesTransactionDetails.PWDItemsDiscount, mclsSalesTransactionDetails.OtherItemsDiscount, mclsSalesTransactionDetails.Discount, mclsSalesTransactionDetails.SNRDiscount, mclsSalesTransactionDetails.PWDDiscount, mclsSalesTransactionDetails.OtherDiscount, mclsSalesTransactionDetails.TransDiscount, mclsSalesTransactionDetails.TransDiscountType, mclsSalesTransactionDetails.VAT, mclsSalesTransactionDetails.VATableAmount, mclsSalesTransactionDetails.ZeroRatedSales, mclsSalesTransactionDetails.NonVATableAmount, mclsSalesTransactionDetails.VATExempt, mclsSalesTransactionDetails.EVAT, mclsSalesTransactionDetails.EVATableAmount, mclsSalesTransactionDetails.NonEVATableAmount, mclsSalesTransactionDetails.LocalTax, mclsSalesTransactionDetails.DiscountCode, mclsSalesTransactionDetails.DiscountRemarks, mclsSalesTransactionDetails.Charge, mclsSalesTransactionDetails.ChargeAmount, mclsSalesTransactionDetails.ChargeCode, mclsSalesTransactionDetails.ChargeRemarks, mclsSalesTransactionDetails.ChargeType);
                                            clsSalesTransactions.CommitAndDispose();

                                            InsertAuditLog(AccessTypes.Discounts, "Apply transaction discount for " + mclsSalesTransactionDetails.Discount.ToString("#,###.#0") + ". Tran. #".PadRight(15) + ":" + lblTransNo.Text + " @ Branch: " + mclsTerminalDetails.BranchDetails.BranchCode);
                                        }
                                    }

                                    #endregion

                                    Data.SalesTransactionItemDetails mTopItemDetails = getCurrentRowItemDetails();

                                    #region close the transaction

                                    // override the customerinformation if it's paid with in-house creditcard
                                    if (det.clsCreditorDetails.ContactID != 0 && det.clsCreditorDetails.ContactID != mclsSalesTransactionDetails.CustomerID)
                                    {
                                        LoadContact(Data.ContactGroupCategory.CUSTOMER, det.clsCreditorDetails);
                                    }

                                    //close then print 1 by 1
                                    CloseTransaction(mTopItemDetails,
                                    det.AmountPaid, det.ChangeAmount, det.BalanceAmount, det.CashPayment, det.ChequePayment,
                                    det.CreditCardPayment, det.CreditPayment, det.CreditChargeAmount, det.DebitPayment,
                                    det.RewardConvertedPayment, det.RewardPointsPayment, det.PaymentType,
                                    det.arrCashPaymentDetails, det.arrChequePaymentDetails, det.arrCreditCardPaymentDetails,
                                    det.arrCreditPaymentDetails, det.arrDebitPaymentDetails);

                                    #endregion

                                    clsEvent.AddEventLn(" Loading Options...", true, mclsSysConfigDetails.WillWriteSystemLog);
                                    this.LoadOptions();
                                }

                                #region void the old transaction

                                mclsSalesTransactionDetails = tmpSalesTransactionDetails;

                                // load the transaction
                                LoadTransaction(tmpSalesTransactionDetails.TransactionNo, tmpSalesTransactionDetails.TerminalNo);

                                clsEvent.AddEventLn("[" + lblCashier.Text + "] Voiding transaction no. " + lblTransNo.Text, true);

                                System.Data.DataTable dt = (System.Data.DataTable)dgItems.DataSource;
                                for (int x = 0; x < dt.Rows.Count; x++)
                                {
                                    dgItems.CurrentRowIndex = x;
                                    Data.SalesTransactionItemDetails Details = getCurrentRowItemDetails();

                                    if (Details.TransactionItemStatus != TransactionItemStatus.Void)
                                    {
                                        Details.TransactionItemStatus = TransactionItemStatus.Void;
                                        ReservedAndCommitItem(Details, Details.TransactionItemStatus);
                                    }
                                }

                                //UpdateTerminalReportDelegate updateterminalDel = new UpdateTerminalReportDelegate(UpdateTerminalReport);
                                UpdateTerminalReport(TransactionStatus.Void, mclsSalesTransactionDetails.ItemSold, mclsSalesTransactionDetails.QuantitySold, mclsSalesTransactionDetails.SubTotal, mclsSalesTransactionDetails.Discount, mclsSalesTransactionDetails.ItemsDiscount, mclsSalesTransactionDetails.SNRItemsDiscount, mclsSalesTransactionDetails.PWDItemsDiscount, mclsSalesTransactionDetails.OtherItemsDiscount, mclsSalesTransactionDetails.Charge, mclsSalesTransactionDetails.VAT, mclsSalesTransactionDetails.VATableAmount, mclsSalesTransactionDetails.ZeroRatedSales, mclsSalesTransactionDetails.NonVATableAmount, mclsSalesTransactionDetails.VATExempt, mclsSalesTransactionDetails.EVAT, mclsSalesTransactionDetails.EVATableAmount, mclsSalesTransactionDetails.NonEVATableAmount, mclsSalesTransactionDetails.LocalTax, 0, 0, 0, 0, 0, 0, 0, PaymentTypes.NotYetAssigned);

                                //UpdateCashierReportDelegate updatecashierDel = new UpdateCashierReportDelegate(UpdateCashierReport);
                                UpdateCashierReport(TransactionStatus.Void, mclsSalesTransactionDetails.ItemSold, mclsSalesTransactionDetails.QuantitySold, mclsSalesTransactionDetails.SubTotal, mclsSalesTransactionDetails.Discount, mclsSalesTransactionDetails.ItemsDiscount, mclsSalesTransactionDetails.SNRItemsDiscount, mclsSalesTransactionDetails.PWDItemsDiscount, mclsSalesTransactionDetails.OtherItemsDiscount, mclsSalesTransactionDetails.Charge, mclsSalesTransactionDetails.VAT, mclsSalesTransactionDetails.VATableAmount, mclsSalesTransactionDetails.ZeroRatedSales, mclsSalesTransactionDetails.NonVATableAmount, mclsSalesTransactionDetails.VATExempt, mclsSalesTransactionDetails.EVAT, mclsSalesTransactionDetails.EVATableAmount, mclsSalesTransactionDetails.NonEVATableAmount, mclsSalesTransactionDetails.LocalTax, 0, 0, 0, 0, 0, 0, 0, PaymentTypes.NotYetAssigned);

                                new Data.SalesTransactions(mConnection, mTransaction).Void(mclsSalesTransactionDetails.TransactionID, mclsSalesTransactionDetails.ItemSold, mclsSalesTransactionDetails.QuantitySold, mclsSalesTransactionDetails.GrossSales, mclsSalesTransactionDetails.SubTotal, mclsSalesTransactionDetails.NetSales, mclsSalesTransactionDetails.ItemsDiscount, mclsSalesTransactionDetails.SNRItemsDiscount, mclsSalesTransactionDetails.PWDItemsDiscount, mclsSalesTransactionDetails.OtherItemsDiscount, mclsSalesTransactionDetails.Discount, mclsSalesTransactionDetails.SNRDiscount, mclsSalesTransactionDetails.PWDDiscount, mclsSalesTransactionDetails.OtherDiscount, mclsSalesTransactionDetails.TransDiscount, mclsSalesTransactionDetails.TransDiscountType, mclsSalesTransactionDetails.VAT, mclsSalesTransactionDetails.VATableAmount, mclsSalesTransactionDetails.ZeroRatedSales, mclsSalesTransactionDetails.NonVATableAmount, mclsSalesTransactionDetails.VATExempt, mclsSalesTransactionDetails.EVAT, mclsSalesTransactionDetails.EVATableAmount, mclsSalesTransactionDetails.NonEVATableAmount, mclsSalesTransactionDetails.LocalTax, mclsSalesTransactionDetails.Charge, mclsSalesTransactionDetails.CashierID, mclsSalesTransactionDetails.CashierName);

                                new Data.SalesTransactions(mConnection, mTransaction).UpdateTerminalNo(mclsSalesTransactionDetails.TransactionID, lblTerminalNo.Text);

                                // Sep 24, 2014 : update back the LastCheckInDate to min date
                                Data.Contacts clsContact = new Data.Contacts(mConnection, mTransaction);
                                mConnection = clsContact.Connection; mTransaction = clsContact.Transaction;

                                clsContact.UpdateLastCheckInDate(mclsSalesTransactionDetails.CustomerID, Constants.C_DATE_MIN_VALUE);

                                InsertAuditLog(AccessTypes.VoidTransaction, "VOID transaction #:" + lblTransNo.Text + " @ Branch: " + mclsTerminalDetails.BranchDetails.BranchCode);
                                clsEvent.AddEventLn("Done transaction no. " + lblTransNo.Text + " has been void.", true);

                                #endregion

                                clsEvent.AddEventLn(" Loading Options...", true, mclsSysConfigDetails.WillWriteSystemLog);
                                this.LoadOptions();

                                // commit all in the database
                                clsLocalDB.CommitAndDispose();
                            }

                            #endregion
                            break;
                        default:
                            break;
                    }

                    
                }
            }
		}
Exemple #20
0
        public bool DelGroup(int groupIdx)
        {
            try
            {
                using (var ctx = new LocalDB())
                {
                    var existGroup =
                        (from gr in ctx.Group where gr.Idx == groupIdx select gr).DefaultIfEmpty(null).First();
                    if (existGroup == null)
                        return false;

                    using (var trx = new TransactionScope())
                    {
                        ctx.Group.Attach(existGroup);
                        ctx.Group.Remove(existGroup);
                        ctx.SaveChanges();

                        trx.Complete();
                    }
                    return true;
                }
            }
            catch (Exception)
            {
                return false;
            }
        }
Exemple #21
0
        public IMSGroups GetGroups()
        {
            try
            {
                using (var ctx = new LocalDB())
                {
                    var groups = (from g in ctx.Group orderby g.No ascending select g).ToList();
                    if (!groups.Any())
                        return null;

                    List<IMSGroup> groupList = new List<IMSGroup>();
                    foreach (var group in groups)
                    {
                        int[] upsNoArray = Regex.Split(group.UpsList, @"\D+").Select(n => Convert.ToInt32(n)).ToArray();
                        IMSUps[] upss = (from u in ctx.Ups
                                         where upsNoArray.Contains(u.No)
                                         select new IMSUps()
                                         {
                                             Idx = u.Idx,
                                             GroupIdx = u.GroupIdx,
                                             No = u.No,
                                             Name = u.Name,
                                             MateList = u.MateList,
                                             CduNo = u.CduNo,
                                             Specification = u.Specification,
                                             Capacity = u.Capacity,
                                             IpAddress = u.IpAddress,
                                             Status = u.Status,
                                             Enabled = u.Enabled,
                                             InstallAt = u.InstallAt,
                                             Description = u.Description
                                         }).ToArray();

                        int[] cduNoArray = Regex.Split(group.CduList, @"\D+").Select(n => Convert.ToInt32(n)).ToArray();
                        IMSCdu[] cdus = (from c in ctx.Cdu
                                         where cduNoArray.Contains(c.No)
                                         select new IMSCdu()
                                         {
                                             Idx = c.Idx,
                                             GroupIdx = c.GroupIdx,
                                             No = c.No,
                                             Name = c.Name,
                                             UpsList = c.UpsList,
                                             Extendable = c.Extendable,
                                             ContractCount = c.ContractCount,
                                             IpAddress = c.IpAddress,
                                             Status = c.Status,
                                             Enabled = c.Enabled,
                                             InstallAt = c.InstallAt,
                                             Description = c.Description
                                         }).ToArray();

                        IMSGroup imsGroup = new IMSGroup()
                        {
                            Idx = group.Idx,
                            No = group.No,
                            Name = group.Name,
                            Display = group.Display,
                            CoordX = group.CoordX,
                            CoordY = group.CoordY,
                            UpsList = upss.ToList(),
                            CduList = cdus.ToList(),
                            Status = group.Status,
                            Enabled = group.Enabled,
                            Description = group.Description
                        };
                        groupList.Add(imsGroup);
                    }

                    IMSGroups result = new IMSGroups()
                    {
                        Groups = groupList,
                        At = DateTime.Now
                    };

                    return result;
                }
            }
            catch (Exception)
            {
                return null;
            }
        }
        public async void Execute(IJobExecutionContext context)
        {
            using (var conn = new OracleConnection(CarUtils.GetBancoInstitucional()))
            {
                string   strResposta = string.Empty;
                ItemFila nextItem    = null;
                var      tid         = Blocos.Data.GerenciadorTransacao.ObterIDAtual();
                try
                {
                    conn.Open();

                    nextItem = LocalDB.PegarProximoItemFila(conn, "revisar-resposta-car");

                    while (nextItem != null)
                    {
                        strResposta = await ConsultarStatusSicar(nextItem.Requisicao);

                        var resposta = JsonConvert.DeserializeObject <ConsultaSicarResposta>(strResposta);

                        var resultado = GerarMensagemRetorno(resposta);

                        if (resultado.codigoResposta == 500)
                        {
                            var strResultadoEnviarCar = LocalDB.PegarResultadoItemFilaPorRequisitante(conn, nextItem.Requisitante, "enviar-car");
                            var resultadoEnviarCar    = JsonConvert.DeserializeObject <MensagemRetorno>(strResultadoEnviarCar);
                            if (resultadoEnviarCar.codigoResposta != 500)
                            {
                                resultado = resultadoEnviarCar;
                            }
                        }

                        AtualizarRegistros(conn, tid, nextItem, resultado);

                        nextItem = LocalDB.PegarProximoItemFila(conn, "revisar-resposta-car");
                    }
                }
                catch (Exception ex)
                {
                    //Marcar como processado registrando a mensagem de erro
                    var msg = ex.Message +
                              Environment.NewLine +
                              Environment.NewLine +
                              strResposta;

                    if (nextItem != null)
                    {
                        var item       = LocalDB.PegarItemFilaPorId(conn, nextItem.Requisitante);
                        var requisicao = JsonConvert.DeserializeObject <RequisicaoJobCar>(item.Requisicao);


                        ControleCarDB.AtualizarSolicitacaoCar(conn, requisicao.origem, requisicao.solicitacao_car, ControleCarDB.SITUACAO_SOLICITACAO_PENDENTE, tid);
                        ControleCarDB.AtualizarControleSICAR(conn, null, requisicao, ControleCarDB.SITUACAO_ENVIO_ARQUIVO_REPROVADO, tid);
                    }
                    try
                    {
                        LocalDB.MarcarItemFilaTerminado(conn, nextItem.Id, false, msg);
                    }catch (Exception e)
                    {
                        var s = e.Message;
                    }
                }
            }
        }
Exemple #23
0
 public UserRepo(LocalDB localDB)
 {
     _localDb = localDB;
 }
Exemple #24
0
 public OrderRepo(LocalDB localDb)
 {
     _localDb = localDb;
 }
Exemple #25
0
        /// <summary>
        /// Called by the <see cref="T:Quartz.IScheduler" /> when a <see cref="T:Quartz.ITrigger" />
        /// fires that is associated with the <see cref="T:Quartz.IJob" />.
        /// </summary>
        /// <param name="context">The execution context.</param>
        /// <remarks>
        /// The implementation may wish to set a  result object on the
        /// JobExecutionContext before this method exits.  The result itself
        /// is meaningless to Quartz, but may be informative to
        /// <see cref="T:Quartz.IJobListener" />s or
        /// <see cref="T:Quartz.ITriggerListener" />s that are watching the job's
        /// execution.
        /// </remarks>
        public async void Execute(IJobExecutionContext context)
        {
            //logging
            var jobKey = context.JobDetail.Key;

            Log.InfoFormat("BEGIN {0} executing at {1}", jobKey, DateTime.Now.ToString("r"));

            using (var conn = new OracleConnection(CarUtils.GetBancoInstitucional()))
            {
                conn.Open();
                string tid = string.Empty;

                var pathArquivoTemporario = new ArquivoManager().BuscarDiretorioArquivoTemporario(conn);

                if (!pathArquivoTemporario.EndsWith("\\"))
                {
                    pathArquivoTemporario += "\\";
                }
                pathArquivoTemporario += "SICAR\\";

                //Veja se
                var nextItem = LocalDB.PegarProximoItemFila(conn, "enviar-car");

                while (nextItem != null)
                {
                    //Update item as Started
                    LocalDB.MarcarItemFilaIniciado(conn, nextItem.Id);

                    var item = LocalDB.PegarItemFilaPorId(conn, nextItem.Requisitante);


                    if (String.IsNullOrEmpty(item.Requisicao))
                    {
                        nextItem = LocalDB.PegarProximoItemFila(conn, "enviar-car");
                        continue;
                    }
                    var requisicao = JsonConvert.DeserializeObject <RequisicaoJobCar>(item.Requisicao);
                    tid = Blocos.Data.GerenciadorTransacao.ObterIDAtual();

                    if (ControleCarDB.VerificarCarValido(conn, requisicao.solicitacao_car))
                    {
                        nextItem = LocalDB.PegarProximoItemFila(conn, "enviar-car");
                        continue;
                    }

                    string resultado = "";
                    try
                    {
                        //Atualizar controle de envio do SICAR
                        ControleCarDB.AtualizarSolicitacaoCar(conn, requisicao.origem, requisicao.solicitacao_car, ControleCarDB.SITUACAO_ENVIO_AGUARDANDO_ENVIO, tid);
                        ControleCarDB.AtualizarControleSICAR(conn, null, requisicao, ControleCarDB.SITUACAO_ENVIO_ENVIANDO, tid);
                        //var controleCar = ControleCarDB.ObterItemControleCar(conn, requisicao);

                        var dataCadastroEstadual = ControleCarDB.ObterDataSolicitacao(conn, requisicao.solicitacao_car, requisicao.origem);

                        resultado = await EnviarArquivoCAR(pathArquivoTemporario + nextItem.Requisicao, dataCadastroEstadual, requisicao.solicitacao_car);

                        if (String.IsNullOrWhiteSpace(resultado) || resultado.Contains("task was canceled"))
                        {
                            throw new System.ArgumentException("Erro de conexão com o SICAR, será feita uma nova tentativa ;", "resultado");
                        }
                        var resultadoEnvio = JsonConvert.DeserializeObject <MensagemRetorno>(resultado);


                        //Salvar no diretorio de arquivos do SIMLAM Institucional
                        string arquivoFinal;
                        using (var stream = File.Open(pathArquivoTemporario + nextItem.Requisicao, FileMode.Open, FileAccess.Read, FileShare.Read))
                        {
                            var arquivoManager = new ArquivoManager();
                            arquivoFinal = arquivoManager.Salvar(nextItem.Requisicao, stream, conn);
                        }

                        //Retificação
                        ItemControleCar itemSicar = ControleCarDB.ObterItemControleCarRetificacao(conn, requisicao);

                        if (itemSicar != null)
                        {
                            if (itemSicar.solicitacao_car_anterior > 0 && resultadoEnvio.codigoResposta == MensagemRetorno.CodigoRespostaSucesso)
                            {
                                ControleCarDB.AtualizarSolicitacaoCarRetificacao(conn, itemSicar.solicitacao_car_anterior_esquema, itemSicar.solicitacao_car_anterior, itemSicar.solicitacao_car_anterior_tid);
                                ControleCarDB.AtualizarControleSICarRetificacao(conn, resultadoEnvio, itemSicar, ControleCarDB.SITUACAO_ENVIO_ARQUIVO_ENTREGUE, requisicao.solicitacao_car, tid, arquivoFinal);
                            }
                        }
                        //Atualiza a Solicitacao do CAR
                        var situacaoSolicitacao = (resultadoEnvio.codigoResposta == MensagemRetorno.CodigoRespostaSucesso) ? ControleCarDB.SITUACAO_SOLICITACAO_VALIDO : ControleCarDB.SITUACAO_SOLICITACAO_PENDENTE;
                        ControleCarDB.AtualizarSolicitacaoCar(conn, requisicao, situacaoSolicitacao, tid);

                        //Atualizar controle de envio do SICAR
                        ControleCarDB.AtualizarControleSICAR(conn, resultadoEnvio, requisicao, ControleCarDB.SITUACAO_ENVIO_ARQUIVO_ENTREGUE, tid, arquivoCar: arquivoFinal);
                        //}

                        //Marcar como processado
                        LocalDB.MarcarItemFilaTerminado(conn, nextItem.Id, true, resultado);
                    }
                    catch (Exception ex)
                    {
                        //Marcar como processado registrando a mensagem de erro
                        var msg = " +++---+++ RESULTADO  :::: " +
                                  (resultado ?? "noMessage ++++   00----000  " + ex.Message +
                                   Environment.NewLine +
                                   Environment.NewLine);

                        LocalDB.MarcarItemFilaTerminado(conn, nextItem.Id, false, msg);
                        ControleCarDB.AtualizarSolicitacaoCar(conn, requisicao.origem, requisicao.solicitacao_car, ControleCarDB.SITUACAO_SOLICITACAO_PENDENTE, tid);
                        ControleCarDB.AtualizarControleSICAR(conn, new MensagemRetorno()
                        {
                            mensagensResposta = new List <string> {
                                ex.Message, ex.ToString(), resultado ?? ""
                            }
                        }, requisicao, ControleCarDB.SITUACAO_ENVIO_ARQUIVO_REPROVADO, tid, catchEnviar: true);
                        Log.Error("CATCH:" + nextItem.Requisicao + " ===== ++  " + ex.Message, ex);
                    }

                    System.Threading.Thread.Sleep(TimeSpan.FromSeconds(30));

                    nextItem = LocalDB.PegarProximoItemFila(conn, "enviar-car");

                    //Apagar arquivo do diretorio temporário
                    //TODO:NÃO VAI
                    //try
                    //{
                    //	File.Delete(pathArquivoTemporario + nextItem.Requisicao);
                    //}
                    //catch (Exception) { /*ignored*/ }
                }

                //using (var cmd = new OracleCommand(@"UPDATE IDAF.TAB_SCHEDULER_FILA SET DATA_CRIACAO = null
                //							WHERE resultado like '%Não está na hora especificada para o sincronismo do seu sistema. %'", conn))
                //{
                //	cmd.ExecuteNonQuery();
                //}
                //using (var cmd = new OracleCommand(@"UPDATE IDAF.TAB_SCHEDULER_FILA SET DATA_CRIACAO = null
                //							WHERE resultado like '%Value cannot be null.%'", conn))
                //{
                //	cmd.ExecuteNonQuery();
                //}
                //using (var cmd = new OracleCommand(@"UPDATE IDAF.TAB_SCHEDULER_FILA SET DATA_CRIACAO = null
                //							WHERE resultado like '%TCP%'", conn))
                //{
                //	cmd.ExecuteNonQuery();
                //}
                //using (var cmd = new OracleCommand(@"UPDATE IDAF.TAB_SCHEDULER_FILA SET DATA_CRIACAO = null
                //							WHERE resultado like '%Object reference%' AND TIPO = 'enviar-car'", conn))
                //{
                //	cmd.ExecuteNonQuery();
                //}
                //using (var cmd = new OracleCommand(@"UPDATE IDAF.TAB_SCHEDULER_FILA SET DATA_CRIACAO = null
                //							WHERE resultado like '%Houve um problema%'", conn))
                //{
                //	cmd.ExecuteNonQuery();
                //}
                //using (var cmd = new OracleCommand(@"UPDATE IDAF.TAB_SCHEDULER_FILA SET DATA_CRIACAO = null
                //							WHERE resultado like '%Erro de conexão com o SICAR%'", conn))
                //{
                //	cmd.ExecuteNonQuery();
                //}

                conn.Close();
            }



            Log.InfoFormat("ENDING {0} executing at {1}", jobKey, DateTime.Now.ToString("r"));
        }
        public bool FillITPValidHierarchyTable(string sSessionId, string sUser, ref string sRtnMsg)
        {
            try
            {
                clsTabletDB.ITPStaticTable Static = new clsTabletDB.ITPStaticTable();
                clsTabletDB.ITPValidHierarchy ITPValidHierarchy = new clsTabletDB.ITPValidHierarchy();
                LocalDB DB = new LocalDB();
                double dNewVersionNumber = 0.0;
                DateTime dtLastVersionDate;
                string sITPValidHierarchyTableName = ITPValidHierarchy.sITPValidHierarchyTableName;

                //Only do all of this if the version has changed. So get the local version number and compare to that on the DB. If different do all of this. - WRITE LATER as a general function
                bool bNewVersion = Static.IsNewVersionOfTable(sSessionId, sUser, sITPValidHierarchyTableName, ref dNewVersionNumber, ref dtLastVersionDate);

                if (!DB.TableExists(sITPValidHierarchyTableName) || bNewVersion)
                {
                    clsLocalUtils util = new clsLocalUtils();
                    string sURL = util.GetEnvironment_wbsURL("wbsITP_External");
                    wbsITP_External ws = new wbsITP_External();
                    ws.Url = sURL;
                    object[] objValidHierarchy = ws.GetITPValidHierarchyInfo(sSessionId, sUser);
                    if (objValidHierarchy[0].ToString() == "Success")
                    {
                        if (ITPValidHierarchy.TableITPValidHierarchyDeleteAllRecords(ref sRtnMsg))
                        {
                            string sITPValidHierarchyInfo = objValidHierarchy[1].ToString();
                            string[] sHeaderInfo = sITPValidHierarchyInfo.Split('~');
                            if (sHeaderInfo[0] == "ITPValidHierarchyInfo")
                            {
                                string[] delimiters = new string[] { "||" };
                                string[] sITPValidHierarchyItems = sHeaderInfo[1].Split(delimiters, StringSplitOptions.RemoveEmptyEntries);
                                int iValidHierarchyCount = sITPValidHierarchyItems.Length;
                                if (iValidHierarchyCount > 0)
                                {
                                    this.InvokeOnMainThread(() => { progBarValidHierarchyVw.ShowProgressBar(iValidHierarchyCount); });
                                    //First check if the ITPValidHierarchy table exists and if not create it
                                    if (ITPValidHierarchy.CheckFullITPValidHierarchyTable())
                                    {
                                        SqliteConnection conn = DB.OpenConnection();
                                        for (int i = 0; i < iValidHierarchyCount; i++)
                                        {
                                            string[] delimiters2 = new string[] { "^" };
                                            string[] sValidHierarchyItems = sITPValidHierarchyItems[i].Split(delimiters2, StringSplitOptions.None);
                                            string sFieldValue = sValidHierarchyItems[0];
                                            string sFieldType = sValidHierarchyItems[1];
                                            Array.Resize<string>(ref sValidHierarchyItems, sValidHierarchyItems.Length + 1);
                                            sValidHierarchyItems[sValidHierarchyItems.Length - 1] = sFieldType;
                                            sValidHierarchyItems[sValidHierarchyItems.Length - 2] = sFieldValue;
                                            sValidHierarchyItems[0] = i.ToString();
                                            ITPValidHierarchy.TableITPValidHierarchyAddRecord(sValidHierarchyItems, conn);
                                            this.InvokeOnMainThread(() => { progBarValidHierarchyVw.UpdateProgressBar(i + 1); });
                                        }
                                        DB.CloseConnection(conn);

                                    }
                                }
                            }
                        }
                        //Update the version number locally
                        Static.UpdateVersionNumber(sITPValidHierarchyTableName, dNewVersionNumber);
                        this.InvokeOnMainThread(() => { progBarValidHierarchyVw.CloseProgressBar(); });
                        return true;
                    }
                    else
                    {
                        sRtnMsg = objValidHierarchy[1].ToString();
                        return false;
                    }
                }
                else
                {
                    //This means you don't have to fill this static table
                    return true;
                }
            }
            catch (Exception ex)
            {
                sRtnMsg = "Failure" + ex.Message.ToString();
                return false;
            }
        }
 void Enable_Clicked(object sender, System.EventArgs e)
 {
     LocalDB.TouchID(Enable: true);
     Navigation.PushAsync(new ExistingUserLoginView.EnableTouchIDSuccessPage());
 }
Exemple #28
0
        public bool SetGroup(IMSGroup g)
        {
            try
            {
                using (var ctx = new LocalDB())
                {
                    var existGroup = (from gr in ctx.Group where gr.Idx == g.Idx select gr).DefaultIfEmpty(null).First();
                    if (existGroup == null)
                        return false;

                    existGroup.No = g.No;
                    existGroup.Name = g.Name;
                    existGroup.Display = g.Display;
                    existGroup.CoordX = g.CoordX;
                    existGroup.CoordY = g.CoordY;
                    // 이 부분에서 실제로 하위의 것들도 같은 관계가 되어 있는지 발리데이션 해야 한다.
                    // 그냥 
                    //existGroup.UpsList =
                    //    string.Join(",",
                    //        (from upsNo in g.UpsList orderby upsNo ascending select $"{upsNo}").ToArray());
                    //existGroup.CduList =
                    //    string.Join(",",
                    //        (from cudNo in g.CduList orderby cudNo ascending select $"{cudNo}").ToArray());
                    existGroup.Enabled = g.Enabled;
                    if (existGroup.Enabled)
                    {
                        var subUpsArray = (from u in ctx.Ups
                                           where
                                               (Regex.Split(existGroup.UpsList, @"\D+")
                                                   .Select(n => Convert.ToInt32(n))
                                                   .ToList()
                                                   .Contains(u.No))
                                           select u).ToArray();
                        foreach (var subUps in subUpsArray)
                        {
                            subUps.Enabled = g.Enabled;
                        }

                        var subCduArray = (from c in ctx.Cdu
                                           where
                                               (Regex.Split(existGroup.CduList, @"\D+")
                                                   .Select(n => Convert.ToInt32(n))
                                                   .ToList()
                                                   .Contains(c.No))
                                           select c).ToArray();
                        foreach (var subCdu in subCduArray)
                        {
                            subCdu.Enabled = g.Enabled;
                        }
                    }
                    
                    existGroup.Description = g.Description;

                    using (var trx = new TransactionScope())
                    {
                        ctx.SaveChanges();
                        trx.Complete();
                    }
                }
                return true;
            }
            catch (Exception)
            {
                return false;
            }
        }
        public bool FillITPInventoryMainTable(string sSessionId, string sUser, ref string sRtnMsg)
        {
            try
            {
                clsTabletDB.ITPStaticTable Static = new clsTabletDB.ITPStaticTable();
                clsTabletDB.ITPInventory ITPInventory = new clsTabletDB.ITPInventory();
                LocalDB DB = new LocalDB();
                double dNewVersionNumber = 0.0;
                DateTime dtLastVersionDate;
                DateTime dtToday = DateTime.Now;
                string sITPInventoryTableName = ITPInventory.sITPInventoryTableName;

                //Only do all of this if the version has changed. So get the local version number and compare to that on the DB. If different do all of this. - WRITE LATER as a general function
                bool bNewVersion = Static.IsNewVersionOfTable(sSessionId, sUser, sITPInventoryTableName, ref dNewVersionNumber, ref dtLastVersionDate);
                TimeSpan ts = dtToday - dtLastVersionDate;
                int iDaysSinceUpdate = ts.Days;

                if (!DB.TableExists(sITPInventoryTableName) || bNewVersion || iDaysSinceUpdate >= 30)
                {
                    clsLocalUtils util = new clsLocalUtils();
                    string sURL = util.GetEnvironment_wbsURL("wbsITP_External");
                    wbsITP_External ws = new wbsITP_External();
                    ws.Url = sURL;
                    object[] objInventory = ws.GetITPInventoryInfo(sSessionId, sUser);
                    if (objInventory[0].ToString() == "Success")
                    {
                        if (ITPInventory.TableITPInventoryDeleteAllRecords(ref sRtnMsg))
                        {
                            string sITPInventoryInfo = objInventory[1].ToString();
                            string[] sHeaderInfo = sITPInventoryInfo.Split('~');
                            if (sHeaderInfo[0] == "ITPInventoryMakeAndModelInfo")
                            {
                                string[] delimiters = new string[] { "||" };
                                string[] sITPInventoryItems = sHeaderInfo[1].Split(delimiters, StringSplitOptions.RemoveEmptyEntries);
                                int iInventoryCount = sITPInventoryItems.Length;
                                if (iInventoryCount > 0)
                                {
                                    this.InvokeOnMainThread(() => { progBarInventoryVw.ShowProgressBar(iInventoryCount); });
                                    //First check if the ITPInventory table exists and if not create it
                                    if (ITPInventory.CheckFullITPInventoryTable())
                                    {
                                        for (int i = 0; i < iInventoryCount; i++)
                                        {
                                            string[] delimiters2 = new string[] { "^" };
                                            string[] sInventoryItems = sITPInventoryItems[i].Split(delimiters2, StringSplitOptions.None);
                                            ITPInventory.TableITPInventoryAddRecord(sInventoryItems);
                                            this.InvokeOnMainThread(() => { progBarInventoryVw.UpdateProgressBar(i + 1); });
                                        }
                                    }
                                }
                            }
                        }
                        //Update the version number locally
                        Static.UpdateVersionNumber(sITPInventoryTableName, dNewVersionNumber);
                        this.InvokeOnMainThread(() => { progBarInventoryVw.CloseProgressBar(); });
                        return true;
                    }
                    else
                    {
                        sRtnMsg = objInventory[1].ToString();
                        return false;
                    }
                }
                else
                {
                    //This means you don't have to fill this static table
                    return true;
                }
            }
            catch (Exception ex)
            {
                sRtnMsg = "Failure" + ex.Message.ToString();
                return false;
            }
        }
Exemple #30
0
        public int Add(sys_organize entry)
        {
            StringBuilder sql = new StringBuilder();

            sql.Append("INSERT INTO dbo.sys_organize \n");
            sql.Append("        ( status , \n");
            sql.Append("          pid , \n");
            sql.Append("          orgtype , \n");
            sql.Append("          code , \n");
            sql.Append("          title , \n");
            sql.Append("          tel , \n");
            sql.Append("          fax , \n");
            sql.Append("          email , \n");
            sql.Append("          leader , \n");
            sql.Append("          logo , \n");
            sql.Append("          address , \n");
            sql.Append("          add_time , \n");
            sql.Append("          modify_time \n");
            sql.Append("        ) \n");
            sql.Append("SELECT @status , -- status - int \n");
            sql.Append("          @pid , -- pid - int \n");
            sql.Append("          @orgtype , -- orgtype - int \n");
            sql.Append("          @code , -- code - nvarchar(50) \n");
            sql.Append("          @title , -- title - nvarchar(max) \n");
            sql.Append("          @tel , -- tel - nvarchar(50) \n");
            sql.Append("          @fax , -- fax - nvarchar(50) \n");
            sql.Append("          @email , -- email - nvarchar(50) \n");
            sql.Append("          @leader , -- leader - nvarchar(50) \n");
            sql.Append("          @logo , -- logo - nvarchar(max) \n");
            sql.Append("          @address , -- address - nvarchar(max) \n");
            sql.Append("          @add_time , -- add_time - datetime \n");
            sql.Append("          @modify_time  -- modify_time - datetime \n");
            sql.Append(" WHERE NOT EXISTS (SELECT * FROM dbo.sys_organize WHERE code=@code)\n select SCOPE_IDENTITY();\n");
            using (LocalDB db = new LocalDB())
            {
                int nodeid = db.Current_Conn.ExecuteScalar <int>(sql.ToString(), new
                {
                    status      = entry.status,
                    pid         = entry.pid,
                    orgtype     = entry.orgtype,
                    code        = entry.code,
                    title       = entry.title,
                    tel         = entry.tel,
                    fax         = entry.fax,
                    email       = entry.email,
                    leader      = entry.leader,
                    logo        = entry.logo,
                    address     = entry.address,
                    add_time    = entry.add_time,
                    modify_time = entry.modify_time
                });
                if (nodeid > 0)
                {
                    entry.id         = nodeid;
                    entry.entitytype = "sys_organize";
                    solr.Add(entry);
                    solr.Commit();
                }
                return(nodeid);
            }
        }
Exemple #31
0
 public ClientGateway(IExecutor executor, LocalDB localDB, ExternalServices externalServices)
 {
     this.localDB          = localDB;
     this.externalServices = externalServices;
     this.executor         = executor;
 }
Exemple #32
0
        public int SaveOrganizeTree(List <sys_organize> data)
        {
            StringBuilder sql = new StringBuilder();

            sql.Append("declare @isexsit int=0 \n ");
            sql.Append("set IDENTITY_INSERT sys_organize on \n");
            foreach (var item in data)
            {
                sql.AppendFormat("select @isexsit=count(id) from sys_organize where id = {0} \n", item.id);
                sql.Append(" if @isexsit=0 \n");
                sql.Append(" begin \n");
                sql.Append("INSERT INTO dbo.sys_organize \n");
                sql.Append("        ( id,status , \n");
                sql.Append("          pid , \n");
                sql.Append("          orgtype , \n");
                sql.Append("          code , \n");
                sql.Append("          title , \n");
                sql.Append("          tel , \n");
                sql.Append("          fax , \n");
                sql.Append("          email , \n");
                sql.Append("          leader , \n");
                sql.Append("          logo , \n");
                sql.Append("          address , \n");
                sql.Append("          add_time , \n");
                sql.Append("          modify_time \n");
                sql.Append("        ) \n");
                sql.AppendFormat("VALUES  ( {0},{1}, -- status - int \n", item.id, item.status);
                sql.AppendFormat("          {0}, -- pid - int \n", item.pid);
                sql.AppendFormat("          {0}, -- orgtype - int \n", item.orgtype);
                sql.AppendFormat("          '{0}', -- code - nvarchar(50) \n", item.code);
                sql.AppendFormat("          '{0}', -- title - nvarchar(max) \n", item.title);
                sql.AppendFormat("          '{0}', -- tel - nvarchar(50) \n", item.tel);
                sql.AppendFormat("          '{0}', -- fax - nvarchar(50) \n", item.fax);
                sql.AppendFormat("          '{0}', -- email - nvarchar(50) \n", item.email);
                sql.AppendFormat("          '{0}', -- leader - nvarchar(50) \n", item.leader);
                sql.AppendFormat("          '{0}', -- logo - nvarchar(max) \n", item.logo);
                sql.AppendFormat("          '{0}', -- address - nvarchar(max) \n", item.address);
                sql.Append("          GETDATE(), -- add_time - datetime \n");
                sql.Append("          NULL  -- modify_time - datetime \n");
                sql.Append("        ) \n");
                sql.Append(" end \n");
                sql.Append(" else \n");
                sql.Append(" begin \n");
                sql.AppendFormat(" update sys_organize set title='{0}' where id = {1} \n", item.title, item.id);
                sql.Append(" end \n");
            }
            sql.Append("set IDENTITY_INSERT sys_organize off \n");
            using (LocalDB db = new LocalDB())
            {
                db.Current_Conn.Open();
                var        transaction = db.Current_Conn.BeginTransaction();
                List <int> delids      = db.Current_Conn.Query <int>("select id from sys_organize", null, transaction).Except(data.Select(t => t.id)).ToList();
                try
                {
                    db.Current_Conn.Execute("delete from sys_organize where id in @ids", new { ids = delids }, transaction);
                    int cnt = db.Current_Conn.Execute(sql.ToString(), null, transaction);
                    if (cnt > 0)
                    {
                        var r = solr.Delete(new SolrQuery("entitytype:sys_organize"));
                        foreach (var entry in data)
                        {
                            entry.entitytype = "sys_organize";
                            solr.Add(entry);
                        }
                        solr.Commit();
                    }
                    transaction.Commit();
                    return(cnt);
                }
                catch (Exception e)
                {
                    Console.Write(e);
                    transaction.Rollback();
                    throw;
                }
            }
        }
Exemple #33
0
        private void VerifyCredit()
        { 
            if (!SuspendTransactionAndContinue()) return;

            DialogResult loginresult = DialogResult.Cancel;

            // 08Jul2015 : Remove the access for CreditVerification if it's normal
            switch (mclsSysConfigDetails.CreditPaymentType )
            {
                case CreditPaymentType.Houseware:
                    loginresult = GetWriteAccessAndLogin(mclsSalesTransactionDetails.CashierID, AccessTypes.EnterCreditPayment); 
                    break;
                case CreditPaymentType.Normal:
                case CreditPaymentType.MPC:
                default:
                    loginresult = GetWriteAccessAndLogin(mclsSalesTransactionDetails.CashierID, AccessTypes.FE_VerifyCredit);
                    break;
            }

            if (loginresult == DialogResult.OK)
            {
                CreditVerificationWnd clsCreditVerificationWnd = new CreditVerificationWnd();
                clsCreditVerificationWnd.TerminalDetails = mclsTerminalDetails;
                clsCreditVerificationWnd.SysConfigDetails = mclsSysConfigDetails;
                clsCreditVerificationWnd.CashierID = mclsSalesTransactionDetails.CashierID;
                clsCreditVerificationWnd.CashierName = mclsSalesTransactionDetails.CashierName;
                clsCreditVerificationWnd.ShowDialog(this);
                DialogResult result = clsCreditVerificationWnd.Result;
                Data.ContactDetails details = clsCreditVerificationWnd.CreditorDetails;
                Data.ContactDetails guarantordetails = clsCreditVerificationWnd.GuarantorDetails;
                Keys keyCommand = clsCreditVerificationWnd.keyCommand;
                clsCreditVerificationWnd.Close();
                clsCreditVerificationWnd.Dispose();

                if (result == DialogResult.OK)
                {
                    if (keyCommand == Keys.F12)
                    {
                        Cursor.Current = Cursors.WaitCursor;

                        LocalDB clsLocalDB = new LocalDB(mConnection, mTransaction);
                        mConnection = clsLocalDB.Connection; mTransaction = clsLocalDB.Transaction;

                        try
                        {
                            //print the verification slip
                            PrintCreditVerificationSlip(details, guarantordetails);
                        }
                        catch (Exception ex)
                        {
                            InsertErrorLogToFile(ex, "ERROR!!! Credit verification procedure. Err Description: ");
                        }
                        clsLocalDB.CommitAndDispose();
                    }
                }
            }
        }
Exemple #34
0
        private static bool UpdateNote(Note note, bool reflectOnRoaming = true)
        {
            if (note == null)
            {
                return(false);
            }

            Debug.WriteLine("Update note: " + note.Title);
            //App.TelemetryClient.TrackEvent("NoteUpdated");

            //associate with note
            foreach (var item in note.Checklist)
            {
                item.NoteId = note.ID;
            }
            foreach (var item in note.Images)
            {
                item.NoteId = note.ID;
            }
            note.Reminder.NoteId = note.ID;

            //NotificationsManager.TryCreateNoteReminder(note, note.Reminder.Date);

            //DB.UpdateWithChildren(note);
            bool success = LocalDB.Update(note) == 1;

            if (!success)
            {
                return(false);
            }

            if (reflectOnRoaming)
            {
                RoamingDB.Update(note);
            }

            //update checklist items and note images
            if (note.Checklist.Count > 0)
            {
                LocalDB.InsertOrReplaceAll(note.Checklist);
                if (reflectOnRoaming)
                {
                    RoamingDB.InsertOrReplaceAll(note.Checklist);
                }
            }

            if (note.Images.Count > 0)
            {
                LocalDB.InsertOrReplaceAll(note.Images);
                if (reflectOnRoaming)
                {
                    RoamingDB.InsertOrReplaceAll(note.Images);
                }
            }

            if (note.Reminder != null)
            {
                LocalDB.InsertOrReplace(note.Reminder);
                if (reflectOnRoaming)
                {
                    RoamingDB.InsertOrReplace(note.Reminder);
                }
            }

            note.Changed = false;

            var handler = NoteChanged;

            if (handler != null)
            {
                handler(null, new NoteEventArgs(note));
            }

            var handler2 = NotesSaved;

            if (handler2 != null)
            {
                handler2(null, EventArgs.Empty);
            }

            return(true);
        }
Exemple #35
0
		private void RenewRewardCard()
		{
			if (mboIsInTransaction)
			{
				MessageBox.Show("Sorry you cannot renew a Reward Card while there is an ongoing transaction. Please finish the transaction first.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Warning);
				return;
			}

			DialogResult loginresult = GetWriteAccessAndLogin(mclsSalesTransactionDetails.CashierID, AccessTypes.RewardCardChange);

			if (loginresult == DialogResult.OK)
			{
				try
				{
					DialogResult result; Data.ContactDetails clsContactDetails;
					ContactSelectWnd clsContactWnd = new ContactSelectWnd();
                    clsContactWnd.EnableContactAddUpdate = GetWriteAccess(mclsSalesTransactionDetails.CashierID, AccessTypes.Contacts) == System.Windows.Forms.DialogResult.OK;
                    clsContactWnd.SysConfigDetails = mclsSysConfigDetails;
                    clsContactWnd.TerminalDetails = mclsTerminalDetails;
					clsContactWnd.ContactGroupCategory = AceSoft.RetailPlus.Data.ContactGroupCategory.CUSTOMER;
                    clsContactWnd.Header = "Please select customer for reward card renewal.";
					clsContactWnd.ShowDialog(this);
					clsContactDetails = clsContactWnd.Details;
					result = clsContactWnd.Result;
					clsContactWnd.Close();
					clsContactWnd.Dispose();

					if (result != DialogResult.OK)
					{ return; }

					if (clsContactDetails.ContactID == Constants.ZERO || clsContactDetails.ContactID == Constants.C_RETAILPLUS_CUSTOMERID)
					{ return; }

					clsEvent.AddEvent("[" + lblCashier.Text + "] Renewing reward card.");

					Data.Contacts clsContact = new Data.Contacts(mConnection, mTransaction);
                    mConnection = clsContact.Connection; mTransaction = clsContact.Transaction;

					clsContactDetails = clsContact.Details(clsContactDetails.ContactID);
					clsContact.CommitAndDispose();

					if (clsContactDetails.RewardDetails.RewardCardNo == string.Empty || clsContactDetails.RewardDetails.RewardCardNo == null)
					{
						clsEvent.AddEventLn("Cancelled!");
						clsEvent.AddEventLn(clsContactDetails.ContactName + " has no valid Reward Card yet. ");
						MessageBox.Show(clsContactDetails.ContactName + " has no valid Reward Card yet. Please select another customer.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Warning);
						return;
					}
					clsEvent.AddEvent("[" + lblCashier.Text + "] Renewing reward card #: " + clsContactDetails.RewardDetails.RewardCardNo + " of " + clsContactDetails.ContactName + ".");

					ContactRewardWnd clsContactRewardWnd = new ContactRewardWnd();
                    clsContactRewardWnd.TerminalDetails = mclsTerminalDetails;
					clsContactRewardWnd.Caption = "Reward Card Renewal";
					clsContactRewardWnd.ContactDetails = clsContactDetails;
					clsContactRewardWnd.RewardCardStatus = RewardCardStatus.ReNew;
					clsContactRewardWnd.ShowDialog(this);
					result = clsContactRewardWnd.Result;
					clsContactDetails = clsContactRewardWnd.ContactDetails;
					clsContactRewardWnd.Close();
					clsContactRewardWnd.Dispose();

					if (result == DialogResult.OK)
					{
                        Data.Products clsProducts = new Data.Products(mConnection, mTransaction);
                        mConnection = clsProducts.Connection; mTransaction = clsProducts.Transaction;

                        if (clsProducts.Details(Data.Products.DEFAULT_ADVANTAGE_CARD_RENEWAL_FEE_BARCODE).ProductID == 0)
                        {
                            clsProducts.CREATE_ADVANTAGE_CARD_RENEWAL_FEE_BARCODE_PRODUCT();
                            Methods.InsertAuditLog(mclsTerminalDetails, "System Administrator", AccessTypes.RewardCardChange, "ADVANTAGE_CARD_RENEWAL_FEE_BARCODE product has been created coz it's not configured");
                        }
                        clsProducts.CommitAndDispose();

						MessageBox.Show("Reward Card No: " + clsContactDetails.RewardDetails.RewardCardNo + " has been renewed with new expiry date " + clsContactDetails.RewardDetails.ExpiryDate.ToString("yyyy-MM-dd") + ".", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Warning);

						clsEvent.AddEventLn("Done!", true);
						clsEvent.AddEventLn("Reward Card No: " + clsContactDetails.RewardDetails.RewardCardNo + " has been renewed with new expiry date " + clsContactDetails.RewardDetails.ExpiryDate.ToString("yyyy-MM-dd") + ".", true);

                        LocalDB clsLocalDB = new LocalDB(mConnection, mTransaction);
                        mConnection = clsLocalDB.Connection; mTransaction = clsLocalDB.Transaction;

						clsEvent.AddEvent("[" + lblCashier.Text + "] Creating " + Data.Products.DEFAULT_ADVANTAGE_CARD_RENEWAL_FEE_BARCODE + "transaction for customer: ");
						LoadContact(AceSoft.RetailPlus.Data.ContactGroupCategory.CUSTOMER, clsContactDetails);
						if (!this.CreateTransaction()) return;

						txtBarCode.Text = Data.Products.DEFAULT_ADVANTAGE_CARD_RENEWAL_FEE_BARCODE;
						ReadBarCode();
						int iRow = dgItems.CurrentRowIndex;

						txtBarCode.Text = "";
						CloseTransaction();

                        clsLocalDB.CommitAndDispose();
					}
					else { clsEvent.AddEventLn("Cancelled!"); }
				}
				catch (Exception ex)
                { 
                    InsertErrorLogToFile(ex, "ERROR!!! Renewing reward card."); 
                }
				Cursor.Current = Cursors.Default;
			}
		}
 public CurrentAccountService(IExecutor executor, ExternalServices externalServices, LocalDB localDB)
 {
     this.externalServices = externalServices;
     this.localDB          = localDB;
     this.executor         = executor;
 }
Exemple #37
0
		private void CreditCardReplacement(CreditCardStatus pvtCreditCardStatus)
		{
			if (mboIsInTransaction)
			{
				MessageBox.Show("Sorry you cannot replace a Credit Card while there is an ongoing transaction. Please finish the transaction first.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Warning);
				return;
			}

			DialogResult loginresult = GetWriteAccessAndLogin(mclsSalesTransactionDetails.CashierID, AccessTypes.CreditCardChange);

            if (loginresult == DialogResult.OK)
			{
				try
				{
					DialogResult result; Data.ContactDetails clsContactDetails;
					ContactSelectWnd clsContactWnd = new ContactSelectWnd();
                    clsContactWnd.EnableContactAddUpdate = GetWriteAccess(mclsSalesTransactionDetails.CashierID, AccessTypes.Contacts) == System.Windows.Forms.DialogResult.OK;
                    clsContactWnd.SysConfigDetails = mclsSysConfigDetails;
                    clsContactWnd.TerminalDetails = mclsTerminalDetails;
					clsContactWnd.ContactGroupCategory = AceSoft.RetailPlus.Data.ContactGroupCategory.CUSTOMER;
                    clsContactWnd.Header = "Please select customer for credit card replacement.";
					clsContactWnd.ShowDialog(this);
					clsContactDetails = clsContactWnd.Details;
					result = clsContactWnd.Result;
					clsContactWnd.Close();
					clsContactWnd.Dispose();

					if (result != DialogResult.OK)
					{ return; }

					if (clsContactDetails.ContactID == Constants.ZERO || clsContactDetails.ContactID == Constants.C_RETAILPLUS_CUSTOMERID)
					{ return; }

					clsEvent.AddEvent("[" + lblCashier.Text + "] Replacing credit card...");

                    Data.Contacts clsContact = new Data.Contacts(mConnection, mTransaction);
                    mConnection = clsContact.Connection; mTransaction = clsContact.Transaction;

					clsContactDetails = clsContact.Details(clsContactDetails.ContactID);
                    Data.ContactDetails clsGuarantor = clsContact.Details(clsContactDetails.CreditDetails.GuarantorID);
					clsContact.CommitAndDispose();

					if (clsContactDetails.CreditDetails.CreditCardNo == string.Empty || clsContactDetails.CreditDetails.CreditCardNo == null)
					{
						clsEvent.AddEventLn("Cancelled!");
						clsEvent.AddEventLn(clsContactDetails.ContactName + " has no valid Credit Card yet. ");
						MessageBox.Show(clsContactDetails.ContactName + " has no valid Credit Card yet. Please select another customer.", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Error);
						return;
					}
					clsEvent.AddEvent("[" + lblCashier.Text + "] Replacing credit card #: " + clsContactDetails.CreditDetails.CreditCardNo + " of " + clsContactDetails.ContactName + " as " + pvtCreditCardStatus.ToString("G"));

					string strOldCreditCardNo = clsContactDetails.CreditDetails.CreditCardNo;
					ContactCreditWnd clsContactCreditWnd = new ContactCreditWnd();
					if (pvtCreditCardStatus == CreditCardStatus.Replaced_Lost)
						clsContactCreditWnd.Header = "Credit Card Replacement of LOST CARD ";
					else if (pvtCreditCardStatus == CreditCardStatus.Replaced_Expired)
						clsContactCreditWnd.Header = "Credit Card Replacement of EXPIRED CARD ";
                    clsContactCreditWnd.CardTypeDetails = clsContactDetails.CreditDetails.CardTypeDetails;
					clsContactCreditWnd.Guarantor = clsGuarantor;
					clsContactCreditWnd.ContactDetails = clsContactDetails;
					clsContactCreditWnd.CreditCardStatus = pvtCreditCardStatus;
                    clsContactCreditWnd.TerminalDetails = mclsTerminalDetails;
					clsContactCreditWnd.ShowDialog(this);
					result = clsContactCreditWnd.Result;
					clsContactDetails = clsContactCreditWnd.ContactDetails;
					clsContactCreditWnd.Close();
					clsContactCreditWnd.Dispose();

					if (result == DialogResult.OK)
					{
                        Data.Products clsProducts = new Data.Products(mConnection, mTransaction);
                        mConnection = clsProducts.Connection; mTransaction = clsProducts.Transaction;

                        string strProductBarcode = Data.Products.DEFAULT_CREDIT_CARD_REPLACEMENT_FEE_BARCODE;
                        //override if with Guarantor
                        if (clsContactDetails.CreditDetails.CardTypeDetails.WithGuarantor)
                            strProductBarcode = Data.Products.DEFAULT_SUPER_CARD_REPLACEMENT_FEE_BARCODE;

                        if (clsProducts.Details(strProductBarcode).ProductID == 0)
                        {
                            if (!clsContactDetails.CreditDetails.CardTypeDetails.WithGuarantor)
                                clsProducts.CREATE_CREDIT_CARD_REPLACEMENT_FEE_BARCODE_PRODUCT();
                            else
                                clsProducts.CREATE_SUPER_CARD_REPLACEMENT_FEE_BARCODE_PRODUCT();

                            Methods.InsertAuditLog(mclsTerminalDetails, "System Administrator", AccessTypes.CreditCardChange, strProductBarcode + " product has been created coz it's not configured");
                        }
                        clsProducts.CommitAndDispose();

                        MessageBox.Show("Credit Card No: " + strOldCreditCardNo + " has been replaced with new card #: " + clsContactDetails.CreditDetails.CreditCardNo + ".", "RetailPlus", MessageBoxButtons.OK, MessageBoxIcon.Information);

						clsEvent.AddEventLn("Done!", true);
						clsEvent.AddEventLn("Credit Card No: " + strOldCreditCardNo + " has been replaced with new card #: " + clsContactDetails.CreditDetails.CreditCardNo + ".", true);

                        LocalDB clsLocalDB = new LocalDB(mConnection, mTransaction);
                        mConnection = clsLocalDB.Connection; mTransaction = clsLocalDB.Transaction;

						clsEvent.AddEvent("[" + lblCashier.Text + "] Creating " + strProductBarcode + "transaction for customer: ");
						LoadContact(AceSoft.RetailPlus.Data.ContactGroupCategory.CUSTOMER, clsContactDetails);
						if (!this.CreateTransaction()) return;

                        txtBarCode.Text = strProductBarcode;
						ReadBarCode();
						int iRow = dgItems.CurrentRowIndex;

						txtBarCode.Text = "";
						CloseTransaction();

                        clsLocalDB.CommitAndDispose();
					}
					else { clsEvent.AddEventLn("Cancelled!"); }
				}
				catch (Exception ex)
				{ 
                    InsertErrorLogToFile(ex, "ERROR!!! Replacing internal credit card."); 
                }
				Cursor.Current = Cursors.Default;
			}
		}
Exemple #38
0
 public AlphaCardService(IExecutor executor, ExternalServices externalServices, LocalDB localDB)
 {
     this.externalServices = externalServices;
     this.localDB          = localDB;
     this.executor         = executor;
 }
        public void ReloadNpc(string[] @Params, TPlayObject PlayObject)
        {
            string sParam = string.Empty;

            if (@Params != null)
            {
                sParam = @Params.Length > 0 ? @Params[0] : "";
            }
            List <TMerchant> TmpMerList = null;
            List <TNormNpc>  TmpNorList = null;
            TMerchant        Merchant;
            TNormNpc         NPC;

            if ((PlayObject.m_btPermission < 6))
            {
                return;
            }
            if (("all").ToLower().CompareTo((sParam).ToLower()) == 0)
            {
                LocalDB.GetInstance().ReLoadMerchants();
                UserEngine.ReloadMerchantList();
                PlayObject.SysMsg("交易NPC重新加载完成!!!", TMsgColor.c_Red, TMsgType.t_Hint);
                UserEngine.ReloadNpcList();
                PlayObject.SysMsg("管理NPC重新加载完成!!!", TMsgColor.c_Red, TMsgType.t_Hint);
                return;
            }
            TmpMerList = new List <TMerchant>();
            try
            {
                if (UserEngine.GetMerchantList(PlayObject.m_PEnvir, PlayObject.m_nCurrX, PlayObject.m_nCurrY, 9, TmpMerList) > 0)
                {
                    for (int I = 0; I < TmpMerList.Count; I++)
                    {
                        Merchant = TmpMerList[I];
                        Merchant.ClearScript();
                        Merchant.LoadNpcScript();
                        PlayObject.SysMsg(Merchant.m_sCharName + "重新加载成功...", TMsgColor.c_Green, TMsgType.t_Hint);
                    }
                }
                else
                {
                    PlayObject.SysMsg("附近未发现任何交易NPC!!!", TMsgColor.c_Red, TMsgType.t_Hint);
                }
                TmpNorList = new List <TNormNpc>();
                if (UserEngine.GetNpcList(PlayObject.m_PEnvir, PlayObject.m_nCurrX, PlayObject.m_nCurrY, 9, TmpNorList) > 0)
                {
                    for (int I = 0; I < TmpNorList.Count; I++)
                    {
                        NPC = TmpNorList[I];
                        NPC.ClearScript();
                        NPC.LoadNpcScript();
                        PlayObject.SysMsg(NPC.m_sCharName + "重新加载成功...", TMsgColor.c_Green, TMsgType.t_Hint);
                    }
                }
                else
                {
                    PlayObject.SysMsg("附近未发现任何管理NPC!!!", TMsgColor.c_Red, TMsgType.t_Hint);
                }
            }
            finally
            {
                HUtil32.Dispose(TmpMerList);
                HUtil32.Dispose(TmpNorList);
            }
        }
Exemple #40
0
        public IMSGroup GetGroup(int groupIdx)
        {
            try
            {
                using (var ctx = new LocalDB())
                {
                    var group = (from g in ctx.Group where g.Idx == groupIdx select g).DefaultIfEmpty(null).First();
                    if (group == null)
                        return null;

                    int[] upsNoArray = Regex.Split(group.UpsList, @"\D+").Select(n => Convert.ToInt32(n)).ToArray();
                    IMSUps[] upss = (from u in ctx.Ups
                                     where upsNoArray.Contains(u.No)
                                     select new IMSUps()
                                     {
                                         Idx = u.Idx,
                                         GroupIdx = u.GroupIdx,
                                         No = u.No,
                                         Name = u.Name,
                                         MateList = u.MateList,
                                         CduNo = u.CduNo,
                                         Specification = u.Specification,
                                         Capacity = u.Capacity,
                                         IpAddress = u.IpAddress,
                                         Status = u.Status,
                                         Enabled = u.Enabled,
                                         InstallAt = u.InstallAt,
                                         Description = u.Description
                                     }).ToArray();

                    int[] cduNoArray = Regex.Split(group.CduList, @"\D+").Select(n => Convert.ToInt32(n)).ToArray();
                    IMSCdu[] cdus = (from c in ctx.Cdu
                                     where cduNoArray.Contains(c.No)
                                     select new IMSCdu()
                                     {
                                         Idx = c.Idx,
                                         GroupIdx = c.GroupIdx,
                                         No = c.No,
                                         Name = c.Name,
                                         UpsList = c.UpsList,
                                         Extendable = c.Extendable,
                                         ContractCount = c.ContractCount,
                                         IpAddress = c.IpAddress,
                                         Status = c.Status,
                                         Enabled = c.Enabled,
                                         InstallAt = c.InstallAt,
                                         Description = c.Description
                                     }).ToArray();

                    IMSGroup result = new IMSGroup()
                    {
                        Idx = group.Idx,
                        No = group.No,
                        Name = group.Name,
                        Display = group.Display,
                        CoordX = group.CoordX,
                        CoordY = group.CoordY,
                        UpsList = upss.ToList(),
                        CduList = cdus.ToList(),
                        Status = group.Status,
                        Enabled = group.Enabled,
                        Description = group.Description
                    };
                    return result;
                }
            }
            catch (Exception)
            {
                return null;
            }
        }
Exemple #41
0
 private void logout_clickHandler(object sender, EventArgs e)
 {
     //NavigationService.Navigate(new Uri("/RegistrationPages/PasscodePage.xaml", UriKind.Relative));
     LocalDB.deleteLocalPerson();
     NavigationService.Navigate(new Uri("/MainPage.xaml", UriKind.RelativeOrAbsolute));
 }
Exemple #42
0
        public static async Task <bool> RemoveNote(Note note, bool reflectOnRoaming = true)
        {
            if (note == null)
            {
                return(false);
            }

            Note noteFound = null;

            //get original reference
            if (notes != null)
            {
                try
                {
                    if (note.IsArchived)
                    {
                        LoadArchivedNotesIfNecessary();
                        noteFound = ArchivedNotes.FirstOrDefault(x => x.ID == note.ID);
                        if (ArchivedNotes.IndexOf(noteFound) < 0)
                        {
                            noteFound = null;
                        }
                    }
                    else
                    {
                        noteFound = Notes.FirstOrDefault(x => x.ID == note.ID);
                        if (Notes.IndexOf(note) < 0)
                        {
                            noteFound = null;
                        }
                    }
                }
                catch (Exception)
                {
                    Debug.WriteLine("Failed removing note.");
                    return(false);
                }
            }

            Debug.WriteLine("Remove note: " + note.Title);
            //App.TelemetryClient.TrackEvent("NoteRemoved");

            //remove note images from disk
            await RemoveNoteImages(note.Images);

            RemoveNoteReminders(note);
            NotificationsManager.RemoveTileIfExists(note.ID);

            if (noteFound == null)
            {
                return(false);
            }

            noteFound.SoftDelete();

            bool success = LocalDB.Update(noteFound) == 1;

            if (!success)
            {
                return(false);
            }

            if (reflectOnRoaming)
            {
                RoamingDB.Update(noteFound);
            }

            //LocalDB.Delete(noteFound);
            //RoamingDB.Delete(noteFound);

            AppData.Notes.Remove(noteFound);
            AppData.ArchivedNotes.Remove(noteFound);

            var handler = NoteRemoved;

            if (handler != null)
            {
                handler(null, new NoteIdEventArgs(noteFound.ID));
            }

            var handler2 = NotesSaved;

            if (handler2 != null)
            {
                handler2(null, EventArgs.Empty);
            }

            return(true);
        }
 public int ScrapeArt(ArtType artType, LocalDB localDB)
 {
     Debug.Assert(false, "Trying to scrape art for an emulator. Don't do that.");
     return(0);
 }
 private static IntPtr LoadProcAddress() => LocalDB.GetProcAddress("LocalDBFormatMessage");
 //db설정
 public void setDB(string dbName)
 {
     db = new LocalDB("Provider=Microsoft.ACE.OLEDB.12.0; " +
                      "Data Source=../../../DBFiles/" + dbName + ";" +
                      "Persist Security Info=False");
 }
Exemple #46
0
        public int Add(sys_user entry)
        {
            entry.userid = new Tool().RandNum();
            using (LocalDB db = new LocalDB())
            {
                StringBuilder sql = new StringBuilder();
                sql.Append("INSERT INTO dbo.sys_user \n");
                sql.Append("        ( status , \n");
                sql.Append("          usercode ,userid, \n");
                sql.Append("          sex , \n");
                sql.Append("          username , \n");
                sql.Append("          userpwd , \n");
                sql.Append("          rkey , \n");
                sql.Append("          company_id , \n");
                sql.Append("          department_id , \n");
                sql.Append("          login_way , \n");
                sql.Append("          login_date , \n");
                sql.Append("          logout_date , \n");
                sql.Append("          address , \n");
                sql.Append("          tel , \n");
                sql.Append("          birthday , \n");
                sql.Append("          modify_date, \n");
                sql.Append("          add_time \n");
                sql.Append("        ) \n");
                sql.Append("VALUES  ( @status , -- status - int \n");
                sql.Append("          @code , -- code - nvarchar(50) \n");
                sql.Append("          @userid,\n  ");
                sql.Append("          @sex , -- sex - nvarchar(50) \n");
                sql.Append("          @username , -- username - nvarchar(50) \n");
                sql.Append("          @userpwd , -- userpwd - nvarchar(50) \n");
                sql.Append("          @rkey , -- rkey - nvarchar(50) \n");
                sql.Append("          @company_id , -- company_id - int \n");
                sql.Append("          @department_id , -- department_id - int \n");
                sql.Append("          @login_way , -- login_way - int \n");
                sql.Append("          @login_date , -- login_date - datetime \n");
                sql.Append("          @logout_date , -- logout_date - datetime \n");
                sql.Append("          @address , -- add_time - datetime \n");
                sql.Append("          @tel , -- add_time - datetime \n");
                sql.Append("          @birthday , -- add_time - datetime \n");
                sql.Append("          @modify_date,  -- modify_date - datetime \n");
                sql.Append("          GETDATE() -- add_time - datetime \n");
                sql.Append("        );\n select SCOPE_IDENTITY();\n");

                int entityid = db.Current_Conn.ExecuteScalar <int>(sql.ToString(),
                                                                   new
                {
                    status        = entry.status,
                    code          = entry.usercode,
                    userid        = entry.userid,
                    sex           = entry.sex,
                    username      = entry.username,
                    userpwd       = entry.userpwd,
                    rkey          = entry.rkey,
                    company_id    = entry.company_id,
                    department_id = entry.department_id,
                    login_way     = entry.login_way,
                    login_date    = entry.login_date,
                    logout_date   = entry.logout_date,
                    address       = entry.address,
                    tel           = entry.tel,
                    birthday      = entry.birthday,
                    modify_date   = entry.modify_date
                });
                entry.id         = entityid;
                entry.entitytype = "sys_user";
                var solr = ServiceLocator.Current.GetInstance <ISolrOperations <sys_user> >();
                var res  = solr.Add(entry);
                solr.Commit();
                return(entityid);
            }
        }
Exemple #47
0
 public void SetDirty()
 {
     LocalDB.SendDBMsg(this);
 }
        public async Task TestOrderInsertion()
        {
            string connStr;

            //initialize table
            using (var conn = LocalDB.GetLocalDB("ExternalMappingTest"))
            {
                var cmd = new SqlCommand(@"
                IF OBJECT_id('dbo.Orders', 'U') IS NOT NULL
                    DROP TABLE dbo.Orders;
                
                CREATE TABLE dbo.Orders
                (
                    Id INT IDENTITY(1,1) NOT NULL,
                    Date DATETIME NOT NULL,
                    Value FLOAT NOT NULL,
                    CustomerName NVARCHAR(50) NOT NULL,
                    CustomerAge INT NOT NULL
                )
                ", conn);
                cmd.ExecuteNonQuery();
                connStr = conn.ConnectionString;
            }

            //will take effect
            TypeAccessorConfig.RegisterMapping <Order, string>(p => p.Customer.Name, new DBColumnMapping("OrderTarget", "CustomerName", "N/A2"));
            //will take effect
            TypeAccessorConfig.RegisterMapping <Order, int?>(p => p.Customer.Age, new DBColumnMapping("OrderTarget", "CustomerAge", -99));

            var dbInserter = new DbBulkInserter <Order>(connStr, "dbo.Orders", DataflowOptions.Default, "OrderTarget");

            dbInserter.Post(new Order {
                OrderDate = DateTime.Now, OrderValue = 15, Customer = new Person()
                {
                    Name = "Aaron", Age = 38
                }
            });
            dbInserter.Post(new Order {
                OrderDate = DateTime.Now, OrderValue = 25, Customer = new Person()
                {
                    Name = "Bob", Age = 30
                }
            });
            dbInserter.Post(new Order {
                OrderDate = DateTime.Now, OrderValue = 35, Customer = new Person()
                {
                    Age = 48
                }
            });
            dbInserter.Post(new Order {
                OrderDate = DateTime.Now, OrderValue = 45, Customer = new Person()
                {
                    Name = "Neo"
                }
            });

            await dbInserter.SignalAndWaitForCompletionAsync();

            using (var conn = LocalDB.GetLocalDB("ExternalMappingTest"))
            {
                Assert.AreEqual(4, conn.ExecuteScalar <int>("select count(*) from dbo.Orders"));
                Assert.AreEqual(1, conn.ExecuteScalar <int>("select count(*) from dbo.Orders where CustomerAge = 48 and CustomerName = 'N/A2'"));
                Assert.AreEqual(0, conn.ExecuteScalar <int>("select count(*) from dbo.Orders where CustomerName = 'N/A'"));
                Assert.AreEqual(1, conn.ExecuteScalar <int>("select count(*) from dbo.Orders where CustomerName = 'Neo' and CustomerAge = -99"));
            }
        }
Exemple #49
0
    public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
    {
        MatchWindowViewModel MWVM = values[0] as MatchWindowViewModel;

        LocalDB db = (LocalDB)values[1];

        string name = Enum.GetName(typeof(LocalDB), db);

        string id = "";

        string sep1 = " (";
        string sep2 = ")";

        switch (db)
        {
        case LocalDB.GamesDB:
            if (MWVM.ID_GDB != null)
            {
                id = $"{sep1}{MWVM.ID_GDB}{sep2}";
            }
            break;

        case LocalDB.GiantBomb:
            if (MWVM.ID_GB != null)
            {
                id = $"{sep1}{MWVM.ID_GB}{sep2}";
            }
            break;

        case LocalDB.OpenVGDB:
            if (MWVM.ID_OVG != null)
            {
                id = $"{sep1}{MWVM.ID_OVG}{sep2}";
            }
            break;

        case LocalDB.LaunchBox:
            if (MWVM.ID_LB != null)
            {
                id = $"{sep1}{MWVM.ID_LB}{sep2}";
            }
            break;

        case LocalDB.Unknown:
            break;

        case LocalDB.Datomatic:
            break;

        case LocalDB.MobyGames:
            break;

        case LocalDB.Robin:
            break;

        default:
            break;
        }

        return(name + id);
    }
Exemple #50
0
 public UserRepo(LocalDB localDb)
 {
     _db = localDb;
 }