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); }
private void customButtonSubmit_Click(object sender, EventArgs e) { string errorCode; string errorText; var dSession = GlobalDataAccessor.Instance.DesktopSession; MerchandiseProcedures.UpdateGunCustomerData(GlobalDataAccessor.Instance.CurrentSiteId.StoreNumber, gunNumber, dSession.GunAcquireCustomer ? "A" : "D", newCustomer.LastName, newCustomer.FirstName, !string.IsNullOrEmpty(newCustomer.MiddleInitial) ? newCustomer.MiddleInitial.Substring(0, 1) : "", string.Format("{0} {1}", customTextBoxaddr1.Text, customTextBoxAddr2.Text), customTextBoxCity.Text, state1.selectedValue, zipcode1.Text, newCustomer.getFirstIdentity().IdType, newCustomer.getFirstIdentity().IdIssuer, newCustomer.getFirstIdentity().IdValue, dSession.UserName, out errorCode, out errorText); if (errorCode != "0") { MessageBox.Show("Customer data could not be updated"); } else { MessageBox.Show("Customer data updated successfully"); DataTable gunTableData; Item gunItem; MerchandiseProcedures.GetGunData(GlobalDataAccessor.Instance.OracleDA, GlobalDataAccessor.Instance.CurrentSiteId.StoreNumber, Utilities.GetIntegerValue(gunNumber), out gunTableData, out gunItem, out errorCode, out errorText); dSession.GunData = gunTableData; dSession.GunItemData = gunItem; } NavControlBox.Action = NavBox.NavAction.BACKANDSUBMIT; }
private void submitButton_Click(object sender, EventArgs e) { string errorCode; string errorText; DataTable gunTableData; Item gunItemData; if (!string.IsNullOrEmpty(txtGunNumber.Text) && !string.IsNullOrEmpty(tboxShopNumber.Text)) { _storeNumber = tboxShopNumber.Text.PadLeft(5, '0'); bool retVal = MerchandiseProcedures.GetGunData(GlobalDataAccessor.Instance.OracleDA, _storeNumber, //GlobalDataAccessor.Instance.CurrentSiteId.StoreNumber, Utilities.GetIntegerValue(txtGunNumber.Text), out gunTableData, out gunItemData, out errorCode, out errorText); if (retVal && errorText.Contains("No Merchandise data found")) { MessageBox.Show(Commons.GetMessageString("GunEditErrorMessage")); txtGunNumber.Focus(); return; } if (!retVal) { MessageBox.Show("Invalid Gun Number"); txtGunNumber.Focus(); return; } GlobalDataAccessor.Instance.DesktopSession.GunData = gunTableData; CashlinxPawnSupportSession.Instance.GunItemData = gunItemData; NavControlBox.Action = NavBox.NavAction.BACKANDSUBMIT; } }
private void LoadRaiseHistory() { string errorCode, errorText; List <RetailPriceChangeHistoryRecord> changeHistory = new List <RetailPriceChangeHistoryRecord>(); if (!MerchandiseProcedures.GetRetailPriceChangeHistory(DesktopSession, new Icn(RetailItem.Icn), changeHistory, out errorCode, out errorText)) { MessageBox.Show(errorText); return; } gvPriceChanges.AutoGenerateColumns = false; foreach (RetailPriceChangeHistoryRecord record in changeHistory) { DataGridViewRow row = gvPriceChanges.Rows.AddNew(); row.Cells[colPriceChangeDate.Index].Value = record.ChangeDate.ToString("d"); row.Cells[colReductionPercent.Index].Value = record.ChangePercentage.ToString("f0") + "%"; row.Cells[colRetailBefore.Index].Value = record.PriceBefore.ToString("c"); row.Cells[colRetailAfter.Index].Value = record.PriceAfter.ToString("c"); row.Cells[colUserId.Index].Value = record.ChangedBy; row.Tag = record; } }
private void customButtonSubmit_Click(object sender, EventArgs e) { ComboBox addrstate = (ComboBox)this.state1.Controls[0]; getPersonalIdentificationDataFromForm(); if (idEditResource) { if (string.IsNullOrEmpty(customTextBoxLastName.Text.Trim()) || string.IsNullOrEmpty(customTextBoxFirstName.Text.Trim()) || string.IsNullOrEmpty(customTextBoxAddr1.Text.Trim()) || string.IsNullOrEmpty(addrstate.GetItemText(addrstate.SelectedItem)) || string.IsNullOrEmpty(customTextBoxCity.Text.Trim()) || string.IsNullOrEmpty(zipcode1.Text) || string.IsNullOrEmpty(strIdentTypeCode) || string.IsNullOrEmpty(strIdentIssuer) || string.IsNullOrEmpty(strIdentNumber.Trim())) { incompleteData = true; } } else { if (string.IsNullOrEmpty(customTextBoxAddr1.Text.Trim()) || string.IsNullOrEmpty(addrstate.GetItemText(addrstate.SelectedItem)) || string.IsNullOrEmpty(customTextBoxCity.Text.Trim()) || string.IsNullOrEmpty(zipcode1.Text)) { incompleteData = true; } } string errorCode; string errorText; string custMiddleInitial = string.Empty; custMiddleInitial = this.idEditResource ? (!string.IsNullOrEmpty(this.customTextBoxInitial.Text)?this.customTextBoxInitial.Text.Substring(0, 1):"") : this.newCustomer.MiddleInitial; var dSession = GlobalDataAccessor.Instance.DesktopSession; MerchandiseProcedures.UpdateGunCustomerData(GlobalDataAccessor.Instance.CurrentSiteId.StoreNumber, Utilities.GetStringValue(gunBookData.Rows[0]["gun_number"]), dSession.GunAcquireCustomer ? "A" : "D", idEditResource ? customTextBoxLastName.Text : newCustomer.LastName, idEditResource ? customTextBoxFirstName.Text : newCustomer.FirstName, custMiddleInitial, string.Format("{0} {1}", customTextBoxAddr1.Text, customTextBoxAddr2.Text), customTextBoxCity.Text, addrstate.GetItemText(addrstate.SelectedItem), zipcode1.Text, idEditResource ? strIdentTypeCode : newCustomer.getFirstIdentity().IdType, idEditResource ? strIdentIssuer : newCustomer.getFirstIdentity().IdIssuer, idEditResource ? strIdentNumber : newCustomer.getFirstIdentity().IdValue, dSession.UserName, out errorCode, out errorText); if (errorCode != "0") { MessageBox.Show("Customer data could not be updated"); } else { MessageBox.Show("Customer data updated successfully"); DataTable gunTableData; Item gunItem; MerchandiseProcedures.GetGunData(GlobalDataAccessor.Instance.OracleDA, GlobalDataAccessor.Instance.CurrentSiteId.StoreNumber, Utilities.GetIntegerValue(gunBookData.Rows[0]["gun_number"]), out gunTableData, out gunItem, out errorCode, out errorText); dSession.GunData = gunTableData; dSession.GunItemData = gunItem; } NavControlBox.Action = NavBox.NavAction.BACKANDSUBMIT; }
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); }
private void customButtonSubmit_Click(object sender, EventArgs e) { this.DialogResult = DialogResult.None; if (richTextBoxComment.Text.Trim().Count() == 0) { MessageBox.Show("Comment should be entered"); return; } if (comboBoxReason.SelectedItem.ToString() == "Donation" && charityOrg == null) { MessageBox.Show("Charge-off reason requires additional information that was not provided, please reselect reason and enter required information."); return; } System.Windows.Forms.Cursor currentCursor = this.Cursor; this.Cursor = Cursors.WaitCursor; if (customTextBoxAuthBy.isValid || !customTextBoxAuthBy.Required) { List <string> icn = new List <string>(); icn.Add(ChargeOffItem.Icn); List <string> retailPrice = new List <string>(); retailPrice.Add("0"); List <string> jCase = new List <string>(); jCase.Add(""); List <string> statusReason = new List <string>(); statusReason.Add(chargeoffReason); List <int> qty = new List <int>(); qty.Add(ChargeOffItem.Quantity); string errorCode; string errorText; int saleTicketNumber; bool retValue = MerchandiseProcedures.InsertInventoryChargeOff(GlobalDataAccessor.Instance.OracleDA, GlobalDataAccessor.Instance.CurrentSiteId.StoreNumber, ShopDateTime.Instance.ShopDate.ToShortDateString(), ShopDateTime.Instance.ShopDate.ToShortDateString() + " " + ShopDateTime.Instance.ShopTime.ToString(), "", GlobalDataAccessor.Instance.DesktopSession.FullUserName, icn, qty, statusReason, retailPrice, "", "", "", "0", GlobalDataAccessor.Instance.DesktopSession.CashDrawerName, "SALE", "0", "0", jCase, customTextBoxAuthBy.Text, atfNumber, caseNumber, charityOrg, charityAddr, charityCity, charityState, charityZip, replacedICN, richTextBoxComment.Text.ToString(), out saleTicketNumber, out errorCode, out errorText); if (!retValue) { FileLogger.Instance.logMessage(LogLevel.ERROR, this, "Error trying to complete chargeoff " + errorText); MessageBox.Show("Error completing charge off "); return; } MessageBox.Show("Charge off completed successfully"); this.DialogResult = DialogResult.OK; //set fields InventoryChargeOffFields invFields = new InventoryChargeOffFields(); invFields.ATFIncidentNumber = atfNumber; invFields.AuthorizedBy = customTextBoxAuthBy.Text; invFields.ChargeOffAmount = ChargeOffItem.ItemAmount.ToString("C"); invFields.ChargeOffNumber = saleTicketNumber.ToString(); invFields.CharitableOrganization = charityOrg; invFields.Comment = richTextBoxComment.Text.ToString(); if (!string.IsNullOrEmpty(GlobalDataAccessor.Instance.DesktopSession.ActiveCustomer.LastName) && !string.IsNullOrEmpty(GlobalDataAccessor.Instance.DesktopSession.ActiveCustomer.FirstName)) { invFields.CustomerName = GlobalDataAccessor.Instance.DesktopSession.ActiveCustomer.LastName + ", " + GlobalDataAccessor.Instance.DesktopSession.ActiveCustomer.FirstName; } else { invFields.CustomerName = string.Empty; } invFields.EmployeeNumber = GlobalDataAccessor.Instance.DesktopSession.LoggedInUserSecurityProfile.EmployeeNumber; invFields.ICN = ChargeOffItem.Icn; invFields.MerchandiseDescription = ChargeOffItem.TicketDescription; invFields.PoliceCaseNumber = caseNumber; invFields.ReasonForChargeOff = chargeoffReason; invFields.ReplacementLoanNumber = string.Empty; invFields.GunNumber = ChargeOffItem.GunNumber; invFields.IsGun = ChargeOffItem.IsGun; CreateReportObject cro = new CreateReportObject(); cro.GetInventoryChargeOffReport(invFields); //document generation here //chargeoffReason, charityOrg, caseNumber, atfNumber, customTextBoxAuthBy.Text,saleTicketNumber, ChargeOffItem.TicketDescription // richTextBoxComment.Text.ToString() this.Close(); } else { MessageBox.Show("Authorized by should be entered"); return; } }
/// <summary> /// Retrieves the data from the database /// </summary> /// <param name="iMaskPointer"></param> /// <param name="iCategoryCode"></param> /// <returns></returns> public DescribedMerchandise(int iMaskPointer) { Exists = false; Error = false; ErrorMessage = ""; MaskLevel = iMaskPointer; if (iMaskPointer == 0) { Error = true; ErrorMessage = "Valid MaskPointer was not passed by calling Method."; } try { DataSet generalCategoryDataSet = new DataSet(MerchandiseProcedures.GENERAL); DataTable dtCategory = new DataTable(MerchandiseProcedures.CAT_GENERAL); DataTable dtMasks = new DataTable(MerchandiseProcedures.CAT_MASK_GENERAL); DataTable dtAttribs = new DataTable(MerchandiseProcedures.CAT_MASK_ATTR_GENERAL); DataTable dtAva = new DataTable(MerchandiseProcedures.CAT_MASK_ATTR_AVA_GENERAL); DataTable dtAnswers = new DataTable(MerchandiseProcedures.CAT_MASK_ATTR_AVA_ANSWER_GENERAL); DataTable dtCategory_Jewelry = new DataTable(MerchandiseProcedures.CAT_JEWELRY); DataTable dtMasks_Jewelry = new DataTable(MerchandiseProcedures.CAT_MASK_JEWELRY); DataTable dtAttribs_Jewelry = new DataTable(MerchandiseProcedures.CAT_MASK_ATTR_JEWELRY); DataTable dtAva_Jewelry = new DataTable(MerchandiseProcedures.CAT_MASK_ATTR_AVA_JEWELRY); DataTable dtAnswers_Jewelry = new DataTable(MerchandiseProcedures.CAT_MASK_ATTR_AVA_ANSWER_JEWELRY); //[FTN: 3.c] Create ItemAttribute and Populate SelectedPawnItem = new Item(); bool bHasJewelry = false; string sErrorCode = ""; string sErrorMessage = ""; // Call to class for CAT5 Stored Procedure if (MerchandiseProcedures.ExecuteGetCat5Info(MaskLevel, out generalCategoryDataSet, out bHasJewelry, out sErrorCode, out sErrorMessage)) { if (sErrorCode != "") { dtCategory = generalCategoryDataSet.Tables[MerchandiseProcedures.CAT_GENERAL]; dtMasks = generalCategoryDataSet.Tables[MerchandiseProcedures.CAT_MASK_GENERAL]; dtAttribs = generalCategoryDataSet.Tables[MerchandiseProcedures.CAT_MASK_ATTR_GENERAL]; dtAva = generalCategoryDataSet.Tables[MerchandiseProcedures.CAT_MASK_ATTR_AVA_GENERAL]; dtAnswers = generalCategoryDataSet.Tables[MerchandiseProcedures.CAT_MASK_ATTR_AVA_ANSWER_GENERAL]; if (bHasJewelry) { dtCategory_Jewelry = generalCategoryDataSet.Tables[MerchandiseProcedures.CAT_JEWELRY]; dtMasks_Jewelry = generalCategoryDataSet.Tables[MerchandiseProcedures.CAT_MASK_JEWELRY]; dtAttribs_Jewelry = generalCategoryDataSet.Tables[MerchandiseProcedures.CAT_MASK_ATTR_JEWELRY]; dtAva_Jewelry = generalCategoryDataSet.Tables[MerchandiseProcedures.CAT_MASK_ATTR_AVA_JEWELRY]; dtAnswers_Jewelry = generalCategoryDataSet.Tables[MerchandiseProcedures.CAT_MASK_ATTR_AVA_ANSWER_JEWELRY]; } if (dtCategory != null) { SelectedPawnItem.CategoryMask = Utilities.GetIntegerValue(dtCategory.Rows[0]["MASK_POINTER"], 0); SelectedPawnItem.CategoryDescription = Utilities.GetStringValue(dtCategory.Rows[0]["CAT_DESC2"]); SelectedPawnItem.CaccLevel = Utilities.GetIntegerValue(dtCategory.Rows[0]["CACC_LEV"], -1); SelectedPawnItem.IsJewelry = bHasJewelry; SelectedPawnItem.MerchandiseType = Utilities.GetStringValue(dtCategory.Rows[0]["MD_TYPE"]); } //[FTN: 3.c.v] Create new ItemAttribute List SelectedPawnItem.Attributes = new List <ItemAttribute>(); #region FTN 3.e if (dtMasks != null) { foreach (DataRow drMaskRow in dtMasks.Rows) { //[FTN: 3.e.i] Create ItemAttribute and Populate ItemAttribute maskItemAttribute = new ItemAttribute(); maskItemAttribute.AttributeCode = Utilities.GetIntegerValue(drMaskRow["ATTRIBUTE"], 0); maskItemAttribute.DescriptionOrder = Utilities.GetIntegerValue(drMaskRow["DESC_SEQ"], 0); maskItemAttribute.LoanOrder = Utilities.GetIntegerValue(drMaskRow["LOAN_SEQ"], 0); maskItemAttribute.MaskLevel = Utilities.GetIntegerValue(drMaskRow["MASK_LEVEL"], 0); maskItemAttribute.MaskOrder = Utilities.GetIntegerValue(drMaskRow["MASK_SEQ"], 0); maskItemAttribute.MaskDefault = Utilities.GetStringValue(drMaskRow["MASK_DEFAULT"]); maskItemAttribute.IsPreAnswered = false; maskItemAttribute.ValidationDataType = Utilities.GetStringValue(drMaskRow["ANSWER_TYPE"]); maskItemAttribute.IsIncludedInDescription = Utilities.GetStringValue(drMaskRow["INCL_DESC"]) == "Y" ? true : false; maskItemAttribute.IsRequired = Utilities.GetStringValue(drMaskRow["ANS_REQUIRED"]) == "Y" ? true : false; maskItemAttribute.IsRestricted = Utilities.GetStringValue(drMaskRow["ANS_RESTRICT"]) == "Y" ? true : false; if (dtAttribs != null) { //[FTN: 3.e.i.13] Retrieve Attribute Description DataRow[] drsGeneralAttribs = dtAttribs.Select("ATTR_ID=" + maskItemAttribute.AttributeCode.ToString()); if (drsGeneralAttribs.Length > 0) { maskItemAttribute.Description = Utilities.GetStringValue(drsGeneralAttribs[0]["ATTR_DESC"]); maskItemAttribute.Prefix = Utilities.GetStringValue(drsGeneralAttribs[0]["PREFIX"]); maskItemAttribute.Suffix = Utilities.GetStringValue(drsGeneralAttribs[0]["SUFFIX"]); maskItemAttribute.InputType = Utilities.GetStringValue(drsGeneralAttribs[0]["INPUT_TYPE"]); maskItemAttribute.MdseField = Utilities.GetCharValue(drsGeneralAttribs[0]["MDSE_FIELD"], ' '); //[FTN: 3.e.i.14] Create List<Answer> to populate from AVA Table maskItemAttribute.AnswerList = new List <Answer>(); if (dtAva != null) { //[FTN: 3.e.i.15] Filter to only matching Answers. DataRow[] drsAvaTable = dtAva.Select("CATG=" + SelectedPawnItem.CategoryMask.ToString() + " AND ATTR_ID=" + maskItemAttribute.AttributeCode.ToString()); foreach (DataRow drAvaTable in drsAvaTable) { //[FTN: 3.e.i.15.a] Create Answer object and populate Answer attributeAnswer = new Answer(); attributeAnswer.AnswerCode = Utilities.GetIntegerValue(drAvaTable["ANS_ID"], 0); attributeAnswer.DisplayOrder = Utilities.GetIntegerValue(drAvaTable["DISP_SORT"], 0); if (dtAnswers != null) { //[FTN: 3.e.i.15.b] Filter to only matching Answer Code record from ANSWERS DataRow[] drsAnswerTable = dtAnswers.Select("ANS_ID=" + attributeAnswer.AnswerCode.ToString()); if (drsAnswerTable.Length > 0) { attributeAnswer.AnswerText = Utilities.GetStringValue(drsAnswerTable[0]["ANS_DESC"]); attributeAnswer.InputKey = Utilities.GetStringValue(drsAnswerTable[0]["INPUT_KEY"]); attributeAnswer.OutputKey = Utilities.GetStringValue(drsAnswerTable[0]["OUTPUT_KEY"]); } } //[FTN: 3.e.i.15.c] Add attributeAnswer to ItemAttribute maskItemAttribute.AnswerList.Add(attributeAnswer); } } } } //[FTN: 3.e.i.12] Assign Control Type if (maskItemAttribute.AnswerList.Count == 0 && !maskItemAttribute.IsRestricted) { maskItemAttribute.InputControl = ControlType.TEXTFIELD; } else if (maskItemAttribute.AnswerList.Count > 0 && !maskItemAttribute.IsRestricted) { maskItemAttribute.InputControl = ControlType.COMBOBOX_TEXT_ENABLED; } else if (maskItemAttribute.AnswerList.Count > 0 && maskItemAttribute.IsRestricted) { maskItemAttribute.InputControl = ControlType.COMBOBOX_ONLY; } //[FTN: 3.e.ii] Add maskItemAttribute to PawnItem SelectedPawnItem.Attributes.Add(maskItemAttribute); } } #endregion #region FTN 3.f if (SelectedPawnItem.IsJewelry) { SelectedPawnItem.Jewelry = new List <JewelrySet>(); JewelrySet itemJewelrySet = new JewelrySet(); if (dtCategory_Jewelry != null) { itemJewelrySet.Category = Utilities.GetIntegerValue(dtCategory_Jewelry.Rows[0]["MASK_POINTER"], 0); itemJewelrySet.CategoryDescription = Utilities.GetStringValue(dtCategory_Jewelry.Rows[0]["CAT_DESC2"]); itemJewelrySet.CaccLevel = Utilities.GetIntegerValue(dtCategory_Jewelry.Rows[0]["CACC_LEV"], -1); } itemJewelrySet.ItemAttributeList = new List <ItemAttribute>(); foreach (DataRow drMask_JewelryRow in dtMasks_Jewelry.Rows) { //[FTN: 3.f.ii.1] Create ItemAttribute and Populate ItemAttribute maskItemAttribute = new ItemAttribute(); maskItemAttribute.AttributeCode = Utilities.GetIntegerValue(drMask_JewelryRow["ATTRIBUTE"], 0); maskItemAttribute.DescriptionOrder = Utilities.GetIntegerValue(drMask_JewelryRow["DESC_SEQ"], 0); maskItemAttribute.LoanOrder = Utilities.GetIntegerValue(drMask_JewelryRow["LOAN_SEQ"], 0); maskItemAttribute.MaskLevel = Utilities.GetIntegerValue(drMask_JewelryRow["MASK_LEVEL"], 0); maskItemAttribute.MaskOrder = Utilities.GetIntegerValue(drMask_JewelryRow["MASK_SEQ"], 0); maskItemAttribute.MaskDefault = Utilities.GetStringValue(drMask_JewelryRow["MASK_DEFAULT"]); maskItemAttribute.ValidationDataType = Utilities.GetStringValue(drMask_JewelryRow["ANSWER_TYPE"]); maskItemAttribute.IsIncludedInDescription = Utilities.GetStringValue(drMask_JewelryRow["INCL_DESC"]) == "Y" ? true : false; maskItemAttribute.IsRequired = Utilities.GetStringValue(drMask_JewelryRow["ANS_REQUIRED"]) == "Y" ? true : false; maskItemAttribute.IsRestricted = Utilities.GetStringValue(drMask_JewelryRow["ANS_RESTRICT"]) == "Y" ? true : false; if (dtAttribs_Jewelry != null) { //[FTN: 3.f.ii.2] Retrieve Attribute Description DataRow[] drsGeneralAttribs = dtAttribs_Jewelry.Select("ATTR_ID=" + maskItemAttribute.AttributeCode.ToString()); if (drsGeneralAttribs.Length > 0) { maskItemAttribute.Description = Utilities.GetStringValue(drsGeneralAttribs[0]["ATTR_DESC"]); maskItemAttribute.Prefix = Utilities.GetStringValue(drsGeneralAttribs[0]["PREFIX"]); maskItemAttribute.Suffix = Utilities.GetStringValue(drsGeneralAttribs[0]["SUFFIX"]); maskItemAttribute.InputType = Utilities.GetStringValue(drsGeneralAttribs[0]["INPUT_TYPE"]); maskItemAttribute.MdseField = Utilities.GetCharValue(drsGeneralAttribs[0]["MDSE_FIELD"], ' '); //[FTN: 3.f.ii.3] Create List<Answer> to populate from AVA Table maskItemAttribute.AnswerList = new List <Answer>(); if (dtAva_Jewelry != null) { //[FTN: 3.f.ii.4] Filter to only matching Answers. DataRow[] drsAvaTable = dtAva_Jewelry.Select("CATG=" + itemJewelrySet.Category.ToString() + " AND ATTR_ID=" + maskItemAttribute.AttributeCode.ToString()); foreach (DataRow drAvaTable in drsAvaTable) { //[FTN: 3.f.ii.4.a] Create Answer object and populate Answer attributeAnswer = new Answer(); attributeAnswer.AnswerCode = Utilities.GetIntegerValue(drAvaTable["ANS_ID"], 0); attributeAnswer.DisplayOrder = Utilities.GetIntegerValue(drAvaTable["DISP_SORT"], 0); if (dtAnswers_Jewelry != null) { //[FTN: 3.f.ii.4.b] Filter to only matching Answer Code record from ANSWERS DataRow[] drsAnswerTable = dtAnswers_Jewelry.Select("ANS_ID=" + attributeAnswer.AnswerCode.ToString()); if (drsAnswerTable.Length > 0) { attributeAnswer.AnswerText = Utilities.GetStringValue(drsAnswerTable[0]["ANS_DESC"]); attributeAnswer.InputKey = Utilities.GetStringValue(drsAnswerTable[0]["INPUT_KEY"]); attributeAnswer.OutputKey = Utilities.GetStringValue(drsAnswerTable[0]["OUTPUT_KEY"]); } } //[FTN: 3.f.ii.4.c] Add attributeAnswer to ItemAttribute maskItemAttribute.AnswerList.Add(attributeAnswer); } } } } //[FTN: 3.f.ii.1.l...n] Assign Control Type if (maskItemAttribute.AnswerList.Count == 0 && !maskItemAttribute.IsRestricted) { maskItemAttribute.InputControl = ControlType.TEXTFIELD; } else if (maskItemAttribute.AnswerList.Count > 0 && !maskItemAttribute.IsRestricted) { maskItemAttribute.InputControl = ControlType.COMBOBOX_TEXT_ENABLED; } else if (maskItemAttribute.AnswerList.Count > 0 && maskItemAttribute.IsRestricted) { maskItemAttribute.InputControl = ControlType.COMBOBOX_ONLY; } //[FTN: 3.f.iii] Add maskItemAttribute to JewelrySet object itemJewelrySet.ItemAttributeList.Add(maskItemAttribute); } //[FTN: 3.f.iv] Add JewelrySet to PawnItem SelectedPawnItem.Jewelry.Add(itemJewelrySet); } #endregion SelectedPawnItem.PfiAssignmentType = SelectedPawnItem.IsJewelry ? PfiAssignment.Scrap : PfiAssignment.Normal; SelectedPawnItem.IsGun = Utilities.IsGun(SelectedPawnItem.GunNumber, SelectedPawnItem.CategoryMask, SelectedPawnItem.IsJewelry, SelectedPawnItem.MerchandiseType); Exists = true; } else { Error = true; ErrorMessage = sErrorMessage + " [" + sErrorCode + "]"; } } else { Error = true; ErrorMessage = sErrorMessage + " [" + sErrorCode + "]"; } } catch (Exception exp) { Error = true; ErrorMessage = exp.Message; } }
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); }