コード例 #1
0
        /// <summary>
        /// 
        /// </summary>
        /// <param name="receiptNum"></param>
        /// <param name="rec"></param>
        public static bool LoadReceiptData(string receiptNum, out List<Common.Libraries.Utility.Shared.Receipt> rec, out string errorMessage)
        {
            errorMessage = string.Empty;
            rec = null;
            if (string.IsNullOrEmpty(receiptNum))
            {
                errorMessage = "Invalid receipt number.";
                return(false);
            }

            DataTable receiptDataTable;
            string errorCode;
            string errorText;

            if (!ProcessTenderProcedures.ExecuteGetReceiptDetails(
                0,
                GlobalDataAccessor.Instance.CurrentSiteId.StoreNumber,
                "PAWN", receiptNum,
                out receiptDataTable,
                out errorCode,
                out errorText))
            {
                MessageBox.Show("Could not find receipt.");
                //errorMessage = "Unable to find receipt.";
                return(false);
            }
            rec = CustomerLoans.CreateReceipt(receiptDataTable);
            GlobalDataAccessor.Instance.DesktopSession.PawnReceipt = rec;
            return (true);
        }
コード例 #2
0
        public static bool ProcessChargeonNewItems(DesktopSession desktopSession, List <Item> tempItems, string storeNumber)
        {
            foreach (Item pItem in tempItems)
            {
                if (pItem != null)
                {
                    QuickCheck pItemQInfo   = pItem.QuickInformation;
                    Int64[]    primaryMasks = getMasks(pItem);

                    //Insert MDSE record for this pawn item
                    //Calculate the cost amount of the item
                    //Requirement is that cost will be 65% of the amount entered as retail amount
                    //decimal itemCost = Utilities.GetDecimalValue(.65) * Utilities.GetDecimalValue(pItem.ItemAmount);
                    decimal itemCost = pItem.ItemAmount;
                    string  errorCode;
                    string  errorMessage;
                    bool    curRetValue = ProcessTenderProcedures.ExecuteInsertMDSERecord(
                        pItem.mStore, pItem.mStore, pItem.mYear, pItem.mDocNumber,
                        "" + pItem.mDocType, 1, 0, pItem.CategoryCode,
                        "", itemCost,
                        0, pItemQInfo.Manufacturer,
                        pItemQInfo.Model, pItemQInfo.SerialNumber, pItemQInfo.Weight,
                        primaryMasks, pItem.TicketDescription, pItem.ItemAmount,
                        pItem.StorageFee, "AUDIT",
                        ShopDateTime.Instance.ShopDate.FormatDate(), ShopDateTime.Instance.ShopDate.ToShortDateString() + " " + ShopDateTime.Instance.ShopTime.ToString(), "", "", pItem.mDocType, "", out errorCode, out errorMessage);
                    if (!curRetValue)
                    {
                        return(false);
                    }

                    foreach (ItemAttribute iAttr in pItem.Attributes)
                    {
                        if (iAttr.Answer.AnswerCode == OTHERDSC_CODE)
                        {
                            bool otherDscVal = ProcessTenderProcedures.ExecuteInsertOtherDscRecord(
                                storeNumber, pItem.mStore, pItem.mYear, pItem.mDocNumber,
                                "" + pItem.mDocType, 1, 0, iAttr.MaskOrder,
                                iAttr.Answer.AnswerText, "AUDIT", out errorCode, out errorMessage);
                            if (!otherDscVal)
                            {
                                return(false);
                            }
                        }
                    }

                    MerchandiseProcedures.UpdateMerchandiseRetailPrice(desktopSession,
                                                                       new Icn(pItem.Icn), pItem.RetailPrice, out errorCode, out errorMessage, storeNumber);
                    if (errorCode != "0")
                    {
                        return(false);
                    }
                    desktopSession.PrintTags(pItem, CurrentContext.AUDITCHARGEON);
                }
            }

            return(true);
        }
コード例 #3
0
        public static bool UpdateGunDescriptionData()
        {
            GlobalDataAccessor.Instance.beginTransactionBlock();
            string errorCode;
            string errorMessage;
            bool   gunMdseUpdate = MerchandiseProcedures.UpdateGunData(GlobalDataAccessor.Instance.CurrentSiteId.StoreNumber,
                                                                       GlobalDataAccessor.Instance.DesktopSession.ActivePawnLoan.Items[0],
                                                                       GlobalDataAccessor.Instance.DesktopSession.UserName,
                                                                       out errorCode,
                                                                       out errorMessage);

            if (gunMdseUpdate)
            {
                bool deleteOtherdsc = MerchandiseProcedures.DeleteOtherDesc(GlobalDataAccessor.Instance.CurrentSiteId.StoreNumber,
                                                                            GlobalDataAccessor.Instance.DesktopSession.ActivePawnLoan.Items[0].mStore,
                                                                            GlobalDataAccessor.Instance.DesktopSession.ActivePawnLoan.Items[0].mYear,
                                                                            GlobalDataAccessor.Instance.DesktopSession.ActivePawnLoan.Items[0].mDocNumber,
                                                                            GlobalDataAccessor.Instance.DesktopSession.ActivePawnLoan.Items[0].mDocType,
                                                                            GlobalDataAccessor.Instance.DesktopSession.ActivePawnLoan.Items[0].mItemOrder,
                                                                            out errorCode,
                                                                            out errorMessage);
                if (deleteOtherdsc)
                {
                    if ((from iAttr in GlobalDataAccessor.Instance.DesktopSession.ActivePawnLoan.Items[0].Attributes
                         where iAttr.Answer.AnswerCode == 999
                         select ProcessTenderProcedures.ExecuteInsertOtherDscRecord(
                             GlobalDataAccessor.Instance.DesktopSession.CurrentSiteId.StoreNumber,
                             GlobalDataAccessor.Instance.DesktopSession.ActivePawnLoan.Items[0].mStore,
                             GlobalDataAccessor.Instance.DesktopSession.ActivePawnLoan.Items[0].mYear,
                             GlobalDataAccessor.Instance.DesktopSession.ActivePawnLoan.Items[0].mDocNumber,
                             string.Format("{0}", GlobalDataAccessor.Instance.DesktopSession.ActivePawnLoan.Items[0].mDocType),
                             GlobalDataAccessor.Instance.DesktopSession.ActivePawnLoan.Items[0].mItemOrder, 0, iAttr.MaskOrder,
                             iAttr.Answer.AnswerText, GlobalDataAccessor.Instance.DesktopSession.UserName,
                             out errorCode, out errorMessage)).Any(otherDscVal => !otherDscVal))
                    {
                        GlobalDataAccessor.Instance.DesktopSession.endTransactionBlock(EndTransactionType.ROLLBACK);
                        return(false);
                    }
                    Item   pawnItem   = GlobalDataAccessor.Instance.DesktopSession.ActivePawnLoan.Items[0];
                    string sErrorText = string.Empty;
                    string sErrorCode = string.Empty;
                    if (!string.IsNullOrEmpty(GlobalDataAccessor.Instance.DesktopSession.ActivePawnLoan.Items[0].Comment))
                    {
                        ProcessTenderProcedures.ExecuteInsertOtherDscRecord(
                            GlobalDataAccessor.Instance.CurrentSiteId.StoreNumber,
                            pawnItem.mStore, pawnItem.mYear, pawnItem.mDocNumber,
                            pawnItem.mDocType, pawnItem.mItemOrder, 0, 999,
                            pawnItem.Comment, GlobalDataAccessor.Instance.DesktopSession.UserName, out sErrorCode, out sErrorText);
                        if (sErrorCode != "0")
                        {
                            FileLogger.Instance.logMessage(LogLevel.ERROR, null, "Could not insert comment data when updating gun description for " + pawnItem.GunNumber.ToString());
                        }
                    }
                }
                else
                {
                    GlobalDataAccessor.Instance.DesktopSession.endTransactionBlock(EndTransactionType.ROLLBACK);
                    return(false);
                }
                DataTable gunTableData;
                Item      gunItemData;
                MerchandiseProcedures.GetGunData(GlobalDataAccessor.Instance.OracleDA,
                                                 GlobalDataAccessor.Instance.CurrentSiteId.StoreNumber,
                                                 Utilities.GetIntegerValue(GlobalDataAccessor.Instance.DesktopSession.ActivePawnLoan.Items[0].GunNumber),
                                                 out gunTableData,
                                                 out gunItemData,
                                                 out errorCode,
                                                 out errorMessage);
                GlobalDataAccessor.Instance.DesktopSession.GunData     = gunTableData;
                GlobalDataAccessor.Instance.DesktopSession.GunItemData = gunItemData;
                GlobalDataAccessor.Instance.DesktopSession.endTransactionBlock(EndTransactionType.COMMIT);
                return(true);
            }
            GlobalDataAccessor.Instance.endTransactionBlock(EndTransactionType.ROLLBACK);
            return(false);
        }
コード例 #4
0
        private static void SaveTransferInReceipts(DesktopSession dSession, int transferNumber, decimal TotalTransferAmount)
        {
            #region receipt
            var errorCode = String.Empty;
            var errorText = String.Empty;
            var hasErrors = false;
            ReceiptDetailsVO transferReceiptDetailsVO = new ReceiptDetailsVO();
            transferReceiptDetailsVO.ReceiptDate = ShopDateTime.Instance.ShopDate;
            transferReceiptDetailsVO.RefDates    = new List <string>()
            {
                ShopDateTime.Instance.ShopDate.ToShortDateString()
            };
            transferReceiptDetailsVO.RefTimes = new List <string>()
            {
                ShopDateTime.Instance.ShopDate.ToShortDateString() + " " + ShopDateTime.Instance.ShopTime.ToString()
            };
            transferReceiptDetailsVO.UserId     = dSession.UserName;
            transferReceiptDetailsVO.RefNumbers = new List <string>()
            {
                Convert.ToString(transferNumber)
            };
            transferReceiptDetailsVO.RefTypes = new List <string>()
            {
                "6"
            };
            transferReceiptDetailsVO.RefStores = new List <string>()
            {
                dSession.CurrentSiteId.StoreNumber
            };
            transferReceiptDetailsVO.RefEvents = new List <string>()
            {
                "TI"
            };
            transferReceiptDetailsVO.RefAmounts = new List <string>()
            {
                Convert.ToString(TotalTransferAmount)
            };

            ProcessTenderProcedures.ExecuteInsertReceiptDetails(
                dSession.CurrentSiteId.StoreNumber,
                dSession.UserName,
                ShopDateTime.Instance.ShopDate.ToShortDateString(),
                dSession.FullUserName,
                ref transferReceiptDetailsVO,
                out errorCode,
                out errorText);

            if (errorCode != "0")
            {
                hasErrors = true;
            }

            errorCode = String.Empty;
            errorText = String.Empty;

            if (hasErrors)
            {
                BasicExceptionHandler.Instance.AddException("Transfer receipts were not created", new ApplicationException());
                FileLogger.Instance.logMessage(LogLevel.ERROR, "TransferProcedures.cs", "Transfer receipts were not created");
            }
            #endregion receipt
        }
コード例 #5
0
        public static bool ExecuteVendorPFI
        (
            int ticketNumber,
            PurchaseVO vendorPurchaseObj,
            VendorVO vendor,
            out string sErrorCode,
            out string sErrorText
        )
        {
            List <TransferItemVO> _mdseToTransfer = new List <TransferItemVO>();
            int pawnItemIdx = 1;

            sErrorCode = "0";
            sErrorText = "";
            bool itemsPfid = false;

            try
            {
                //Start transaction block
                GlobalDataAccessor.Instance.beginTransactionBlock();


                //Step 1 Update Gun book if the item has a gun
                foreach (Item purchaseItem in vendorPurchaseObj.Items)
                {
                    if (purchaseItem.IsExpenseItem)
                    {
                        pawnItemIdx = pawnItemIdx + purchaseItem.Quantity;
                        continue;
                    }
                    for (int i = 1; i <= purchaseItem.Quantity; i++)
                    {
                        if (!purchaseItem.IsJewelry && purchaseItem.Quantity > 1 && purchaseItem.SerialNumber != null && purchaseItem.SerialNumber.Count > 0)
                        {
                            Item   itemCopy = Utilities.CloneObject(purchaseItem);
                            string sItemPrefix;
                            string sDescription;
                            //Get updated mdse description for each serial number
                            Item.RemoveSerialNumberFromDescription(ref itemCopy, out sItemPrefix, out sDescription);
                            purchaseItem.Attributes        = itemCopy.Attributes;
                            purchaseItem.TicketDescription = sDescription;
                        }
                        purchaseItem.mDocNumber = ticketNumber;
                        purchaseItem.mItemOrder = i;
                        int qty = purchaseItem.QuickInformation.Quantity < 1 ? 1 : purchaseItem.QuickInformation.Quantity;
                        if (purchaseItem.CaccLevel == 0)
                        {
                            // Call Update_Cacc_Info()
                            MerchandiseProcedures.UpdateCaccInfo(GlobalDataAccessor.Instance.DesktopSession,
                                                                 GlobalDataAccessor.Instance.CurrentSiteId.StoreNumber,
                                                                 0,
                                                                 purchaseItem.mDocNumber,
                                                                 "7",
                                                                 1,
                                                                 0,
                                                                 qty,
                                                                 purchaseItem.ItemAmount * qty,
                                                                 purchaseItem.CategoryCode,
                                                                 ShopDateTime.Instance.ShopDate,
                                                                 out sErrorCode,
                                                                 out sErrorText
                                                                 );
                        }

                        if (purchaseItem.IsGun)
                        {
                            ProcessTenderProcedures.ExecuteUpdateGunBookRecord(
                                ticketNumber.ToString(),
                                GlobalDataAccessor.Instance.CurrentSiteId.StoreNumber,
                                ProductStatus.PFI.ToString(),
                                "",
                                vendor.Name,
                                "",
                                "",
                                vendor.Address1,
                                vendor.City,
                                vendor.State,
                                vendor.ZipCode,
                                vendor.Ffl,
                                "",
                                "",
                                "P",
                                GlobalDataAccessor.Instance.DesktopSession.UserName,
                                ShopDateTime.Instance.ShopDate.ToShortDateString(),
                                ShopDateTime.Instance.ShopTransactionTime,
                                "",
                                purchaseItem.QuickInformation.Caliber,
                                purchaseItem.QuickInformation.Importer,
                                purchaseItem.QuickInformation.SerialNumber,
                                purchaseItem.QuickInformation.Model,
                                purchaseItem.QuickInformation.Manufacturer,
                                purchaseItem.mStore,
                                purchaseItem.mYear,
                                purchaseItem.mDocNumber,
                                purchaseItem.mDocType,
                                pawnItemIdx,
                                0,
                                vendorPurchaseObj.GunNumbers[i - 1],
                                out sErrorCode,
                                out sErrorText
                                );
                        }

                        //Step 2 Insert mdse revision record


                        bool mdseRevVal = MerchandiseProcedures.InsertMerchandiseRevision(GlobalDataAccessor.Instance.DesktopSession,
                                                                                          GlobalDataAccessor.Instance.CurrentSiteId.StoreNumber,
                                                                                          purchaseItem.mYear,
                                                                                          ticketNumber,
                                                                                          purchaseItem.mDocType,
                                                                                          pawnItemIdx,
                                                                                          0,
                                                                                          purchaseItem.mStore,
                                                                                          ticketNumber.ToString(),
                                                                                          purchaseItem.mDocType,
                                                                                          "",
                                                                                          0,
                                                                                          purchaseItem.ItemReason == ItemReason.CACC ? "PFC" : "PFI",
                                                                                          "",
                                                                                          "",
                                                                                          GlobalDataAccessor.Instance.DesktopSession.FullUserName,
                                                                                          out sErrorCode,
                                                                                          out sErrorText
                                                                                          );

                        purchaseItem.Icn = Utilities.IcnGenerator(purchaseItem.mStore,
                                                                  purchaseItem.mYear, ticketNumber, "2", pawnItemIdx, 0);


                        TransferItemVO transferData = new TransferItemVO();
                        transferData.ICN         = purchaseItem.Icn.ToString();
                        transferData.StoreNumber = GlobalDataAccessor.Instance.CurrentSiteId.StoreNumber;
                        transferData.ICNQty      = purchaseItem.QuickInformation.Quantity > 0
                                                         ? purchaseItem.QuickInformation.Quantity.ToString()
                                                         : "1";
                        transferData.CustomerNumber   = "";
                        transferData.TransactionDate  = ShopDateTime.Instance.ShopDate;
                        transferData.MdseRecordDate   = ShopDateTime.Instance.ShopDate;
                        transferData.MdseRecordTime   = ShopDateTime.Instance.ShopTransactionTime;
                        transferData.MdseRecordUser   = GlobalDataAccessor.Instance.DesktopSession.UserName;
                        transferData.MdseRecordDesc   = "";
                        transferData.MdseRecordChange = 0;
                        transferData.MdseRecordType   = "";
                        transferData.ClassCode        = "";
                        transferData.AcctNumber       = "";
                        transferData.CreatedBy        = GlobalDataAccessor.Instance.DesktopSession.UserName;
                        transferData.GunNumber        = vendorPurchaseObj.GunNumbers[i - 1] > 0 ? vendorPurchaseObj.GunNumbers[i - 1].ToString() : null;
                        transferData.GunType          = purchaseItem.QuickInformation.GunType;
                        transferData.ItemDescription  = purchaseItem.TicketDescription;
                        transferData.ItemCost         = purchaseItem.ItemAmount;
                        _mdseToTransfer.Add(transferData);
                        itemsPfid = true;
                        pawnItemIdx++;
                    }
                }

                //Step 3 Insert receipt for PFI
                if (itemsPfid)
                {
                    ReceiptDetailsVO receiptDetailsVO = new ReceiptDetailsVO();
                    receiptDetailsVO.ReceiptDate = ShopDateTime.Instance.ShopDate;
                    receiptDetailsVO.RefDates    = new List <string>()
                    {
                        ShopDateTime.Instance.ShopDate.ToShortDateString()
                    };
                    receiptDetailsVO.RefTimes = new List <string>()
                    {
                        ShopDateTime.Instance.ShopDate.ToShortDateString() + " " + ShopDateTime.Instance.ShopTime.ToString()
                    };
                    receiptDetailsVO.UserId     = GlobalDataAccessor.Instance.DesktopSession.UserName;
                    receiptDetailsVO.RefNumbers = new List <string>()
                    {
                        ticketNumber.ToString()
                    };
                    receiptDetailsVO.RefTypes = new List <string>()
                    {
                        "2"
                    };
                    receiptDetailsVO.RefEvents = new List <string>()
                    {
                        "PFI"
                    };
                    receiptDetailsVO.RefAmounts = new List <string>()
                    {
                        vendorPurchaseObj.Amount.ToString()
                    };
                    receiptDetailsVO.RefStores = new List <string>()
                    {
                        GlobalDataAccessor.Instance.CurrentSiteId.StoreNumber
                    };

                    ProcessTenderProcedures.ExecuteInsertReceiptDetails(
                        GlobalDataAccessor.Instance.CurrentSiteId.StoreNumber,
                        GlobalDataAccessor.Instance.DesktopSession.UserName,
                        ShopDateTime.Instance.ShopDate.ToShortDateString(),
                        GlobalDataAccessor.Instance.DesktopSession.UserName,
                        ref receiptDetailsVO,
                        out sErrorCode,
                        out sErrorText);
                }

                GlobalDataAccessor.Instance.endTransactionBlock(EndTransactionType.COMMIT);
            }
            catch (Exception ex)
            {
                GlobalDataAccessor.Instance.endTransactionBlock(EndTransactionType.ROLLBACK);
                FileLogger.Instance.logMessage(LogLevel.ERROR, null, "Error in vendor purchase pfi process while processing PFI " + ex.Message);
                sErrorCode = "1";
                sErrorText = ex.Message;
                return(false);
            }



            //Step 4 Invoke transfer process
            int transferNumber = 0;

            var errorMessage = string.Empty;

            if (_mdseToTransfer.Count > 0 && GlobalDataAccessor.Instance.CurrentSiteId.IsTopsExist)
            {
                bool retValue = TransferProcedures.TransferItemsOutOfStore(_mdseToTransfer, out transferNumber, "", out errorMessage, false, GlobalDataAccessor.Instance.CurrentSiteId.StoreNumber);
                if (!retValue)
                {
                    MessageBox.Show("Error:" + errorMessage);
                    sErrorText = errorMessage;
                    return(false);
                }
                foreach (TransferItemVO transfer in _mdseToTransfer)
                {
                    transfer.TransferNumber = transferNumber;
                }
            }

            if (transferNumber > 0)
            {
                try
                {
                    GlobalDataAccessor.Instance.beginTransactionBlock();
                    //Step 5 Insert receipt for transfer
                    ReceiptDetailsVO receiptDetailsVO = new ReceiptDetailsVO();
                    receiptDetailsVO.ReceiptDate = ShopDateTime.Instance.ShopDate;
                    receiptDetailsVO.RefDates    = new List <string>()
                    {
                        ShopDateTime.Instance.ShopDate.ToShortDateString()
                    };
                    receiptDetailsVO.RefTimes = new List <string>()
                    {
                        ShopDateTime.Instance.ShopDate.ToShortDateString() + " " + ShopDateTime.Instance.ShopTime.ToString()
                    };
                    receiptDetailsVO.UserId     = GlobalDataAccessor.Instance.DesktopSession.UserName;
                    receiptDetailsVO.RefNumbers = new List <string>()
                    {
                        ticketNumber.ToString()
                    };
                    receiptDetailsVO.RefTypes = new List <string>()
                    {
                        "2"
                    };
                    receiptDetailsVO.RefEvents = new List <string>()
                    {
                        "TO"
                    };
                    receiptDetailsVO.RefAmounts = new List <string>()
                    {
                        vendorPurchaseObj.Amount.ToString()
                    };
                    receiptDetailsVO.RefStores = new List <string>()
                    {
                        GlobalDataAccessor.Instance.CurrentSiteId.StoreNumber
                    };

                    ProcessTenderProcedures.ExecuteInsertReceiptDetails(
                        GlobalDataAccessor.Instance.CurrentSiteId.StoreNumber,
                        GlobalDataAccessor.Instance.DesktopSession.UserName,
                        ShopDateTime.Instance.ShopDate.ToShortDateString(),
                        GlobalDataAccessor.Instance.DesktopSession.UserName,
                        ref receiptDetailsVO,
                        out sErrorCode,
                        out sErrorText);
                    GlobalDataAccessor.Instance.DesktopSession.endTransactionBlock(EndTransactionType.COMMIT);
                    //Step 6 Print transfer report

                    /*TransferOutReport trnsfrRpt = new TransferOutReport();
                     * trnsfrRpt.MdseTransfer = _mdseToTransfer;
                     */
                    string logPath =
                        SecurityAccessor.Instance.EncryptConfig.ClientConfig.GlobalConfiguration
                        .BaseLogPath;

                    TransferOutReport trnsfrRpt = new TransferOutReport(_mdseToTransfer, ShopDateTime.Instance.ShopDateCurTime, GlobalDataAccessor.Instance.CurrentSiteId.StoreName,
                                                                        Convert.ToString(GlobalDataAccessor.Instance.CurrentSiteId.StoreNumber), GlobalDataAccessor.Instance.DesktopSession.UserName, Convert.ToString(transferNumber), logPath, "PFIProc", new ReportObject.TransferReport(), PdfLauncher.Instance);
                    trnsfrRpt.CreateReport();
                    //TODO: Store report in couch db
                    if (SecurityAccessor.Instance.EncryptConfig.ClientConfig.ClientConfiguration.PrintEnabled &&
                        GlobalDataAccessor.Instance.DesktopSession.LaserPrinter.IsValid)
                    {
                        string laserPrinterIp   = GlobalDataAccessor.Instance.DesktopSession.LaserPrinter.IPAddress;
                        int    laserPrinterPort = GlobalDataAccessor.Instance.DesktopSession.LaserPrinter.Port;
                        PrintingUtilities.printDocument(trnsfrRpt.getReportWithPath(),
                                                        laserPrinterIp,
                                                        laserPrinterPort,
                                                        1);
                    }

                    //trnsfrRpt.ShowDialog();
                    return(true);
                }
                catch (Exception ex)
                {
                    GlobalDataAccessor.Instance.DesktopSession.endTransactionBlock(EndTransactionType.ROLLBACK);
                    FileLogger.Instance.logMessage(LogLevel.ERROR, null, "Error in vendor purchase pfi process while entering receipt for transfer and printing transfer report " + ex.Message);
                    sErrorCode = "1";
                    sErrorText = ex.Message;
                    return(false);
                }
            }
            return(true);
        }