private void insertSolHistoryLine(SalesLine slThisLine, Pervasive.Data.SqlClient.PsqlConnection oConn, string sHeaderDocumentNumber) { string sDelivery = "", sReturn = "", sType = "", sSql = ""; if (slThisLine.dtReturnDate.Visible && slThisLine.txtCode.Text != "" && slThisLine.txtQuantity.Text != "0")//line defined by Code and must be a lease item { sType = "1"; //Lease Item } string sStatus = slThisLine.txtStatus.Text; if (sStatus == "") { sStatus = "0"; } if (slThisLine.dtReturnDate.Visible == false)//not a lease item { sDelivery = "null"; sReturn = "null"; } else { DateTime dtNow = DateTime.Now; if (dtNow.Day != slThisLine.dtDelivery.Value.Day) { sDelivery = "'" + slThisLine.dtDelivery.Value.ToString("dd-MM-yyyy 08:00") + "'"; } else { sDelivery = "'" + slThisLine.dtDelivery.Value.ToString("dd-MM-yyyy HH:mm") + "'"; } DateTime dtNow2 = DateTime.Now; if (dtNow.Day != slThisLine.dtReturnDate.Value.Day) { sReturn = "'" + slThisLine.dtDelivery.Value.ToString("dd-MM-yyyy HH:mm") + "'"; } else { sReturn = "'" + slThisLine.dtDelivery.Value.ToString("dd-MM-yyyy 08:00") + "'"; } } if (slThisLine.txtCode.Text != "" && slThisLine.txtCode.Text != "'") { sSql = "INSERT into SOLHL"; sSql += " (Header, ItemCode, DeliveryDate, ReturnDate, Status,LinkNum, Multiplier, Qty, OrigDeliveryDate,sCalculationRule, Description) "; sSql += " VALUES "; sSql += "("; sSql += "'" + sHeaderDocumentNumber.Trim() + "'"; sSql += ",'" + slThisLine.txtCode.Text + "'"; sSql += "," + sDelivery; sSql += "," + sReturn; sSql += "," + sStatus; sSql += "," + (slThisLine.iLineIndex + 1).ToString(); sSql += "," + slThisLine.txtMultiplier.Text.Replace(",", "").Trim(); sSql += "," + slThisLine.txtQuantity.Text.Replace(",", "").Trim(); sSql += "," + sDelivery; sSql += ",'" + slThisLine.txtUnitFormula.Text + "'"; sSql += ",'" + slThisLine.txtDescription.Text + "'"; sSql += ")"; int Ret = Solsage_Process_Management_System.Classes.Connect.getDataCommand(sSql, oConn).ExecuteNonQuery(); slThisLine.sPastelLineLink = (slThisLine.iLineIndex + 1).ToString(); } else if (slThisLine.txtCode.Text != "") { sSql = "INSERT into SOLHL"; sSql += " (Header, ItemCode, DeliveryDate, ReturnDate, Status,LinkNum, Multiplier, Qty, OrigDeliveryDate,sCalculationRule, Description) "; sSql += " VALUES "; sSql += "("; sSql += "'" + sHeaderDocumentNumber.Trim() + "'"; sSql += ",'C'"; sSql += "," + sDelivery; sSql += "," + sReturn; sSql += "," + sStatus; sSql += "," + (slThisLine.iLineIndex + 1).ToString(); sSql += "," + slThisLine.txtMultiplier.Text.Replace(",", "").Trim(); sSql += "," + slThisLine.txtQuantity.Text.Replace(",", "").Trim(); sSql += "," + sDelivery; sSql += ",'" + slThisLine.txtUnitFormula.Text + "'"; sSql += ",'" + slThisLine.txtDescription.Text + "'"; sSql += ")"; int Ret = Solsage_Process_Management_System.Classes.Connect.getDataCommand(sSql, oConn).ExecuteNonQuery(); slThisLine.sPastelLineLink = (slThisLine.iLineIndex + 1).ToString(); } //if (slThisLine.txtCode.Text == "'") //{ // slThisLine.sPastelLineLink = (slThisLine.iLineIndex + 1).ToString(); //} }
private void ProcessReturnItems(PsqlConnection oPasConn, PsqlConnection oSolConn, ref SalesLine slActive) { }
private string CreateDocLineFromSalesline(SalesLine slThisLine, int iLines) { string sLine = ""; if (slThisLine.sLineType != "Comment" && slThisLine.txtCode.Text.Trim() != "'") { string sQuantity = (Convert.ToDecimal(slThisLine.txtMultiplier.Text.Replace(",", "").Trim()) * Convert.ToDecimal(slThisLine.txtQuantity.Text.Replace(",", "").Trim())).ToString(); sLine += "|"; //Cost Price sLine += sQuantity + "|"; //Line Quantity sLine += slThisLine.txtExcPrice.Text.Replace(",", "").Trim() + "|"; //Exclusive Price Per Unit //LL 16/09/2009 -- start if (slThisLine.txtTaxType.Text == "0") sLine += (Convert.ToDouble(slThisLine.txtExcPrice.Text)).ToString().Replace(",", "") + "|"; //Inclusive Price Per Unit else if (slThisLine.txtTaxType.Text == "1") sLine += (Convert.ToDouble(slThisLine.txtExcPrice.Text) * 1.14).ToString().Replace(",", "") + "|"; //Inclusive Price Per Unit else sLine += (Convert.ToDouble(slThisLine.txtExcPrice.Text)).ToString().Replace(",", "") + "|"; //All other tax type will send a 0 tax value through //LL 16/09/2009 -- end sLine += slThisLine.txtUnit.Text.Trim() + "|"; //Unit sLine += slThisLine.txtTaxType.Text.PadLeft(2, "0".ToCharArray()[0]) + "|"; //Tax Type sLine += "0|"; //Discount Type sLine += slThisLine.txtDiscount.Text.Replace(".", "").Replace(",", "") + "|"; //Discount % sLine += slThisLine.txtCode.Text.Trim() + "|"; //Code sLine += slThisLine.txtDescription.Text.Trim() + "~" + iLines + "|"; //Description sLine += "4|"; //Line Type sLine += slThisLine.txtStore.Text.Trim() + "|"; //Line Type sLine += "|"; //CostCode sLine += "^" + slThisLine.sLineType; // Generate Invoice Function Needs Line Type if (slThisLine.sLineType == "1")//Lease Item { sLine += "^" + slThisLine.dtDelivery.Value.ToString("dd/MM/yyyy") + "^" + slThisLine.dtReturnDate.Value.ToString("dd/MM/yyyy"); } sLine += "^" + slThisLine.sPastelLineLink;//Add linknum at end of string in order to delete line from SOLHL string sReturned = "0"; if (slThisLine.picReturned.Visible) { sReturned = "1"; } sLine += "^" + sReturned;//Add linknum at end of string in order to delete line from SOLHL } else { string sDescription = slThisLine.txtDescription.Text; // if (slThisLine.txtDescription.Text.StartsWith("*D")) // { // // } sLine = "|"; //Cost Price sLine += "|"; //Line Quantity sLine += "|"; //Exclusive Price Per Unit sLine += "|"; //Inclusive Price Per Unit sLine += "|"; //Unit sLine += "|"; //Tax Type sLine += "|"; //Discount Type sLine += "|"; //Discount % sLine += "'|"; //Code sLine += sDescription + "|"; //Description sLine += "7|"; //Line Type sLine += "|"; //Line Type sLine += "|"; //CostCode sLine += "^*C"; } return sLine; }
private string getPastelLine(SalesLine slThisLine) { string sLine = ""; string sLineType = "4"; if (slThisLine.txtCode.Text == "'") { sLine += "|"; //Cost Price sLine += "|"; //Line Quantity sLine += "|"; //Exclusive Price Per Unit sLine += "|"; //Inclusive Price Per Unit sLine += "|"; //Unit sLine += "|"; //Tax Type sLine += "|"; //Discount Type sLine += "|"; //Discount % sLine += "|"; //Code sLine += slThisLine.txtDescription.Text.Trim() + "|"; //Description sLine += "7|"; //Line Type sLine += "|"; //Multistore sLine += "|"; //CostCode } else if (slThisLine.txtCode.Text != "")//line defined by Code { string sQuantity = (Convert.ToDecimal(slThisLine.txtMultiplier.Text.Replace(",", "").Trim()) * Convert.ToDecimal(slThisLine.txtQuantity.Text.Replace(",", "").Trim())).ToString(); sLine += "|"; //Cost Price sLine += sQuantity + "|"; //Line Quantity sLine += slThisLine.txtExcPrice.Text.Replace(",", "").Trim() + "|"; //Exclusive Price Per Unit //LL 16/09/2009 -- start if (slThisLine.txtTaxType.Text == "0") sLine += (Convert.ToDouble(slThisLine.txtExcPrice.Text)).ToString().Replace(",", "") + "|"; //Inclusive Price Per Unit else if (slThisLine.txtTaxType.Text == "1") sLine += (Convert.ToDouble(slThisLine.txtExcPrice.Text) * 1.14).ToString().Replace(",", "") + "|"; //Inclusive Price Per Unit else if (slThisLine.txtTaxType.Text == "2") sLine += (Convert.ToDouble(slThisLine.txtExcPrice.Text)).ToString().Replace(",", "") + "|"; //Inclusive Price Per Unit //LL 16/09/2009 -- end sLine += slThisLine.txtUnit.Text.Trim() + "|"; //Unit sLine += slThisLine.txtTaxType.Text.PadLeft(2, "0".ToCharArray()[0]) + "|"; //Tax Type sLine += "0|"; //Discount Type sLine += slThisLine.txtDiscount.Text.Replace(".", "").Replace(",", "") + "|"; //Discount % sLine += slThisLine.txtCode.Text.Trim() + "|"; //Code sLine += slThisLine.txtDescription.Text.Trim() + "|"; //Description sLine += sLineType + "|"; //Line Type sLine += slThisLine.txtStore.Text.Trim() + "|"; //Multistore sLine += "|"; //CostCode } return (sLine); }
private void cmdCodeSearch_Click(object sender, EventArgs e) { bool bKit = false; Cursor = System.Windows.Forms.Cursors.WaitCursor ; using (Finder.Inventory frmInventory = new Solsage_Process_Management_System.Finder.Inventory()) { //Sending "None" to inventory ShowDialog to identify that no workshop action should be taken if (frmInventory.ShowDialog(txtStore.Text,"","") == DialogResult.OK) { if (frmInventory.sResult != "") { //check if this item has been selected... //if (((Documents.SalesOrder)(Parent.Parent.Parent.Parent)).CheckDuplicateSalesLine(frmInventory.sResult)) //allow duplicate items wdb 01/09/2012 //{ // MessageBox.Show("No duplicate items are allowed in a sales order. Please select another inventory item.", "Duplicates", MessageBoxButtons.OK, MessageBoxIcon.Warning); //} //else //{ //check if item is part of kit? using (PsqlConnection oConnLiq = new PsqlConnection(Solsage_Process_Management_System.Classes.Connect.sConnStr)) { int iLinkNum = 0; SalesLine slLastControl = this; string sSqlLiq = "Select ItemCode, Qty, Description From SOLKITDET where FkMainItemCode = '" + frmInventory.sResult.Trim() + "' order by LinkNum ASC"; PsqlDataReader rdReaderLiq = Solsage_Process_Management_System.Classes.Connect.getDataCommand(sSqlLiq, oConnLiq).ExecuteReader(); while (rdReaderLiq.Read()) { if (iLinkNum == 0) { txtCode.Text = frmInventory.sResult.Trim(); SalesLine slSales = this; bool bValid = Populate_Inventory_Fields(ref slSales, true); if (!bValid) { bKit = true; break; } txtCode.Focus(); txtCode.SelectionStart = 0; txtCode.SelectionLength = txtCode.Text.Length; ((Documents.SalesOrder)(Parent.Parent.Parent.Parent)).addTotals(); SalesLine slKitLine = new SalesLine(); //slKitLine.txtStore.Text = rdReaderLiq["RMStore"].ToString().Trim(); slKitLine.txtCode.Text = rdReaderLiq["ItemCode"].ToString().Trim(); slKitLine.txtDescription.Text = rdReaderLiq["Description"].ToString().Trim(); slKitLine.bDoCalculation = false; slKitLine.bNextLine = true; slKitLine.txtQuantity.Text = rdReaderLiq["Qty"].ToString().Trim(); ((Documents.SalesOrder)(Parent.Parent.Parent.Parent)).InsertSalesLine(slLastControl.iLineIndex, slKitLine); //remove first line //SalesLine slNewDeletedLine = (SalesLine)this; //((Documents.SalesOrder)(Parent.Parent.Parent.Parent)).deleteSalesLine(slNewDeletedLine, true); slLastControl = slKitLine; slKitLine.bDoCalculation = true; Populate_Kit_Inventory_Fields(ref slKitLine, slKitLine.txtQuantity.Text, slKitLine.txtDescription.Text, slKitLine.txtCode.Text); bKit = true; iLinkNum++; } else { SalesLine slKitLine = new SalesLine(); //slKitLine.txtStore.Text = rdReaderLiq["RMStore"].ToString().Trim(); slKitLine.txtCode.Text = rdReaderLiq["ItemCode"].ToString().Trim(); slKitLine.txtDescription.Text = rdReaderLiq["Description"].ToString().Trim(); slKitLine.bDoCalculation = false; slKitLine.bNextLine = true; slKitLine.txtQuantity.Text = rdReaderLiq["Qty"].ToString().Trim(); ((Documents.SalesOrder)(Parent.Parent.Parent.Parent)).InsertSalesLine(slLastControl.iLineIndex, slKitLine); //remove first line //SalesLine slNewDeletedLine = (SalesLine)this; //((Documents.SalesOrder)(Parent.Parent.Parent.Parent)).deleteSalesLine(slNewDeletedLine, true); Populate_Kit_Inventory_Fields(ref slKitLine, slKitLine.txtQuantity.Text, slKitLine.txtDescription.Text, slKitLine.txtCode.Text); slLastControl = slKitLine; slKitLine.bDoCalculation = true; bKit = true; } } } //} if (!bKit) { txtCode.Text = frmInventory.sResult.Trim(); SalesLine slSales = this; SalesLine slLastControl = this; if (frmInventory.bLinkItem && MessageBox.Show("This item is part of a KIT. Do you want to load all the items linked to this item? ", "Kit Item", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) //Kit Item { bNextLine = true; bool bContinue = Populate_Inventory_Fields(ref slSales, false); txtCode.Focus(); txtCode.SelectionStart = 0; txtCode.SelectionLength = txtCode.Text.Length; if (bContinue) { PsqlConnection oConn = new PsqlConnection(Solsage_Process_Management_System.Classes.Connect.sPastelConnStr); oConn.Open(); string sSql = "select RMStore, ItemCode, RMQty, Remarks from LinkLines "; sSql += " where ItemCode <> '" + frmInventory.sResult + "' and LnkCode = '" + frmInventory.sResult + "'"; PsqlDataReader rdReader = Solsage_Process_Management_System.Classes.Connect.getDataCommand(sSql, oConn).ExecuteReader(); while (rdReader.Read()) { SalesLine slKitLine = new SalesLine(); slKitLine.txtStore.Text = rdReader["RMStore"].ToString().Trim(); slKitLine.txtCode.Text = rdReader["ItemCode"].ToString().Trim(); if (slKitLine.txtCode.Text == "'") { slKitLine.txtDescription.Text = rdReader["Remarks"].ToString().Trim(); } slKitLine.bDoCalculation = false; slKitLine.bNextLine = true; slKitLine.txtQuantity.Text = rdReader["RMQty"].ToString().Trim(); ((Documents.SalesOrder)(Parent.Parent.Parent.Parent)).InsertSalesLine(slLastControl.iLineIndex, slKitLine); slLastControl = slKitLine; slKitLine.bDoCalculation = true; Populate_Inventory_Fields(ref slKitLine, false); } SalesLine slLastLine = (SalesLine)((Documents.SalesOrder)(Parent.Parent.Parent.Parent)).aSaleslines[((Documents.SalesOrder)(Parent.Parent.Parent.Parent)).aSaleslines.Length - 1]; if (slLastLine.txtCode.Text != "") { SalesLine slNewline = new SalesLine();//add empty line at the end ((Documents.SalesOrder)(Parent.Parent.Parent.Parent)).AddSalesLine(slNewline); } rdReader.Close(); oConn.Dispose(); ((Documents.SalesOrder)(Parent.Parent.Parent.Parent)).addTotals(); } } else { bool bValid = Populate_Inventory_Fields(ref slSales, true); txtCode.Focus(); txtCode.SelectionStart = 0; txtCode.SelectionLength = txtCode.Text.Length; ((Documents.SalesOrder)(Parent.Parent.Parent.Parent)).addTotals(); if (Global.bUseQuantityMeasure) { using (PsqlConnection pConn = new PsqlConnection(Connect.sPastelConnStr)) { pConn.Open(); string sSql = "select Category,NettMass from Inventory where ItemCode = '" + txtCode.Text.Trim() + "'"; sCategory = ""; using (PsqlDataReader rdReader = Connect.getDataCommand(sSql, pConn).ExecuteReader()) { while (rdReader.Read()) { sCategory = rdReader["Category"].ToString(); dNetMassPerUnit = Convert.ToDecimal(rdReader["NettMass"]); } rdReader.Close(); } if (sCategory.Trim() != "") { int iMeasureCount = 0; using (PsqlConnection lConn = new PsqlConnection(Connect.sConnStr)) { lConn.Open(); sSql = "select count(*) from SOLMS where fkInventoryCategory = '" + sCategory + "'"; iMeasureCount = Convert.ToInt32(Connect.getDataCommand(sSql, lConn).ExecuteScalar()); lConn.Close(); } if (iMeasureCount > 0) { bUseScale = true; CalcScale(); } else { bUseScale = false; } } pConn.Close(); } } } } } } } Cursor = System.Windows.Forms.Cursors.Default; }
private void InsertNewLine(int iClickedLine) { SalesLine slLastLine = (SalesLine)((Documents.SalesOrder)(Parent.Parent.Parent.Parent)).aSaleslines[((Documents.SalesOrder)(Parent.Parent.Parent.Parent)).aSaleslines.Length - 1]; int iInsertNewLine = iClickedLine + 1; int ilength = ((Documents.SalesOrder)(Parent.Parent.Parent.Parent)).aSaleslines.Length; for (int iLines = 0; iLines < ilength; iLines++) { SalesLine slThisline = (((SalesLine)(SalesLine)((Documents.SalesOrder)(Parent.Parent.Parent.Parent)).aSaleslines[iLines])); if (Convert.ToInt16(slThisline.sPastelLineLink) > iClickedLine) { slThisline.Top = 17 + ((Convert.ToInt16(slThisline.sPastelLineLink)) * 20); //because controll counts line 1 as 0 slThisline.sPastelLineLink = Convert.ToString(Convert.ToInt16(slThisline.sPastelLineLink) + 1); slThisline.iLineIndex = slThisline.iLineIndex + 1; } } SalesLine slNewline = new SalesLine(); slNewline.sPastelLineLink = iInsertNewLine.ToString(); //slNewline.iLineIndex = iInsertNewLine - 1; slNewline.bInsertInMiddle = true; ((Documents.SalesOrder)(Parent.Parent.Parent.Parent)).AddSalesLine(slNewline); ((Documents.SalesOrder)(Parent.Parent.Parent.Parent)).addUpdateInstruction(slNewline.Name, 1, slNewline, slNewline.txtQuantity.Text, slNewline.txtMultiplier.Text); int iCounter = 0; Control[] aNewSaleslines = new Control[0]; bool bfound = false; for (int iNewLines = 1; iNewLines < ilength + 2; iNewLines++) { bfound = false; for (int iLines = 0; iLines <= ilength; iLines++) { //create new controll that is in correct order according to spastellinelink SalesLine slThisline = (((SalesLine)(SalesLine)((Documents.SalesOrder)(Parent.Parent.Parent.Parent)).aSaleslines[iLines])); if (iNewLines == Convert.ToInt16(slThisline.sPastelLineLink)) { Array.Resize<Control>(ref aNewSaleslines, aNewSaleslines.Length + 1); aNewSaleslines[aNewSaleslines.Length - 1] = slThisline; bfound = true; } } if (bfound) { iCounter++; } } ((Documents.SalesOrder)(Parent.Parent.Parent.Parent)).aSaleslines = aNewSaleslines; }
private void ProcessReturnItems(PsqlConnection oPasConn, PsqlConnection oSolConn, ref SalesLine slActive) { bool bInvoice = false; bool bUpdated = false; string sLine = ""; string sSql = ""; string[] aSalesRemoveLines = new string[0]; int iIndex = 0; if (slActive.chkReturn.Checked) { //Validations if (Convert.ToDecimal(slActive.txtMultiplier.Text) > slActive.dMaxMultiplierValue)//check if multiplier returned is more than the original multiplier { MessageBox.Show("You can't return more items than originally orderder. \r\n The original order amout was: " + slActive.dMaxMultiplierValue.ToString(), "Input Error", MessageBoxButtons.OK, MessageBoxIcon.Error); slActive.txtMultiplier.Parent.BackColor = Color.Red; return; } else if (slActive.txtMultiplier.Text != "" && Convert.ToDecimal(slActive.txtMultiplier.Text) <= 0) { MessageBox.Show("You can't return zero or negative item.", "Input Error", MessageBoxButtons.OK, MessageBoxIcon.Error); slActive.txtMultiplier.Parent.BackColor = Color.Red; return; } else {//process returned item for (int iLines = 0; iLines < aSaleslines.Length; iLines++) //find sales line that is linked to this entry { DateTime dtDeliveryDate = DateTime.Now, dtReturnDate = DateTime.Now; int iRet = 0; bInvoice = true; bUpdated = true; if (slActive.sLineType == "1")//lease item { dtDeliveryDate = slActive.dtDelivery.Value; dtReturnDate = slActive.dtReturnDate.Value; sSql = "UPDATE Inventory SET "; //book this item back for rental sSql += " UserDefText01 = '' "; sSql += ", UserDefText02 = '' "; sSql += ", UserDefText03 = '' "; sSql += " WHERE ItemCode = '" + slActive.txtCode.Text + "' "; iRet = Solsage_Process_Management_System.Classes.Connect.getDataCommand(sSql, oPasConn).ExecuteNonQuery(); } if (slActive.sLineType != "Comment") { string sTotalQty = (Convert.ToDecimal(slActive.txtMultiplier.Text) * Convert.ToDecimal(slActive.txtQuantity.Text)).ToString("N2"); //Update Pastel directly because if updated through the SDK it gets a new linkedNum sSql = "UPDATE HistoryLines SET "; sSql += " Qty = " + sTotalQty.Replace(",", ""); sSql += ", UnitPrice = " + slActive.txtExcPrice.Text.Replace(",", ""); sSql += ", DiscountPercentage = " + (Convert.ToDecimal(slActive.txtDiscount.Text.Replace(",", "")) * 100).ToString(); sSql += " where DocumentNumber = '" + txtNumber.Text.Trim() + "' and ItemCode = '" + slActive.txtCode.Text.Trim() + "' and LinkNum = " + slActive.sPastelLineLink; iRet = Solsage_Process_Management_System.Classes.Connect.getDataCommand(sSql, oPasConn).ExecuteNonQuery(); sSql = "UPDATE SOLHL SET "; //mark salesline as returned sSql += " Status = 1"; sSql += ", Multiplier = " + slActive.txtMultiplier.Text.Replace(",", ""); sSql += ", Qty = " + slActive.txtQuantity.Text.Replace(",", ""); if (slActive.sLineType == "1")//lease item { sSql += ", DeliveryDate = '" + dtDeliveryDate.ToString("dd-MM-yyyy") + "'"; sSql += ", ReturnDate = '" + dtReturnDate.ToString("dd-MM-yyyy") + "'"; } sSql += " WHERE Header = '" + txtNumber.Text + "' and ItemCode = '" + slActive.txtCode.Text.Trim() + "' and LinkNum = " + slActive.sPastelLineLink; iRet = Solsage_Process_Management_System.Classes.Connect.getDataCommand(sSql, oSolConn).ExecuteNonQuery(); slActive.txtStatus.Text = "1"; addTotals(); } #region Multiplier Test And Setup //Multiplier returns //If less items is returned in the multiplier field Add the remaining qty bool bMultiplierPartialReturn = false; string sNewLinkNum = ""; string[] aMultiplierDownTime = new string[0]; if (Convert.ToDecimal(slActive.txtMultiplier.Text) < slActive.dMaxMultiplierValue && slActive.sLineType == "1")//Less items returned and must be lease item { bMultiplierPartialReturn = true; } #endregion #region Multiplier Function //Multiplier returns //If less items is returned in the multiplier field Add the remaining qty if (bMultiplierPartialReturn) { string sNewQty = (slActive.dMaxMultiplierValue - Convert.ToDecimal(slActive.txtMultiplier.Text) * Convert.ToDecimal(slActive.txtQuantity.Text)).ToString(); //Book linked item back via invoice sLine = "|"; //Cost Price sLine += sNewQty + "|"; //Line Quantity sLine += slActive.txtExcPrice.Text + "|"; //Exclusive Price Per Unit if (slActive.txtTaxType.Text == "0") sLine += (Convert.ToDecimal(slActive.txtExcPrice.Text)).ToString().Replace(",", "") + "|"; //Inclusive Price Per Unit else if (slActive.txtTaxType.Text == "1") sLine += (Convert.ToDecimal(slActive.txtExcPrice.Text) * 1.14m).ToString().Replace(",", "") + "|"; //Inclusive Price Per Unit sLine += slActive.txtUnit.Text + "|"; //Unit sLine += slActive.txtTaxType.Text + "|"; //Tax Type sLine += slActive.txtDiscountType.Text + "|"; //Discount Type sLine += slActive.txtDiscount.Text + "|"; //Discount % sLine += slActive.txtCode.Text + "|"; //Code sLine += slActive.txtDescription.Text + "|"; //Description sLine += "4|"; //Line Type sLine += slActive.txtStore.Text + "|"; //MultiStore sLine += "|"; //CostCode string[] aMultiplierReturn = clsSDK.EditPastelDocument(sLine, 102, txtNumber.Text, "I", Global.sDataPath).Split("|".ToCharArray()); if (aMultiplierReturn[0] != "0") { MessageBox.Show("Error 100. Failed to create new multiplier row. \r\n\r\n Error " + aMultiplierReturn[1], "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } else //Pastel row added { //Get new Linknum for line - must get from Pastel because downtime lines and notes is not stored in SolHL sSql = "Select max(LinkNum) from HistoryLines where DocumentNumber = '" + txtNumber.Text + "'"; sNewLinkNum = Connect.getDataCommand(sSql, oPasConn).ExecuteScalar().ToString(); sSql = "INSERT into SOLHL"; sSql += " (Header, ItemCode, DeliveryDate, ReturnDate, Status,LinkNum, Multiplier, Qty) "; sSql += " VALUES "; sSql += "("; sSql += "'" + txtNumber.Text.Trim() + "'"; sSql += ",'" + slActive.txtCode.Text + "'"; sSql += ", '" + slActive.dtDelivery.Value.ToString("dd-MM-yyyy") + "'"; sSql += ",'" + slActive.dtReturnDate.Value.ToString("dd-MM-yyyy") + "'"; sSql += ",0"; //status0 not returned sSql += "," + sNewLinkNum; sSql += "," + (slActive.dMaxMultiplierValue - Convert.ToDecimal(slActive.txtMultiplier.Text)).ToString(); sSql += "," + slActive.txtQuantity.Text; sSql += ")"; int Ret = Solsage_Process_Management_System.Classes.Connect.getDataCommand(sSql, oSolConn).ExecuteNonQuery(); //Add Downtime to new row for (int i = 0; i < aMultiplierDownTime.Length; i++) { if (aMultiplierDownTime[i].Trim() != "") { string[] aEditDownReturn = clsSDK.EditPastelDocument(aMultiplierDownTime[i].Replace("~~~", sNewLinkNum.PadLeft(3, "0".ToCharArray()[0])), 102, txtNumber.Text, "I", Global.sDataPath).Split("|".ToCharArray()); } } } } #endregion iIndex++; break; } } } if (!bUpdated) { // MessageBox.Show("No items were selected for return.", "No Returned Items", MessageBoxButtons.OK, MessageBoxIcon.Warning); } else { if (Global.bAutoInvoiceOnReturn && bInvoice)//Create Invoice for Returned items { //Cursor = System.Windows.Forms.Cursors.WaitCursor; //using (Solsage_Process_Management_System.Forms.InvoiceOrder frmInvoice = new Solsage_Process_Management_System.Forms.InvoiceOrder()) //{ // frmInvoice.frmSalesOrder = this; // frmInvoice.sDocNumber = txtNumber.Text; // frmInvoice.sCustomerCode = txtCustomerCode.Text; // frmInvoice.sCustomerDescription = txtCustomerDescription.Text; // frmInvoice.sDiscountPerc = txtDiscount.Text; // frmInvoice.sDeliveryDate = dtDeliveryDate.Value.ToString("dd/MM/yyyy"); // frmInvoice.sOrderNumber = txtOrderNumber.Text; // frmInvoice.sSiteName = selAddresses.Text.Trim(); // frmInvoice.frmMain = ((Main)this.MdiParent); // //autoinvoice // if (chkChangeInvoice.Checked) // { // chkChangeInvoice.Checked = false; // if (frmInvoice.ShowDialog() == DialogResult.OK) // { // loadSalesOrder(txtNumber.Text); // } // else//Closed application // { // frmInvoice.InvoiceOrder_Load(null, null); // frmInvoice._Click(null, null); // loadSalesOrder(txtNumber.Text); // } // } // else // { // frmInvoice.InvoiceOrder_Load(null, null); // frmInvoice.cmdCreateInvoice_Click(null, null); // loadSalesOrder(txtNumber.Text); // } //} //Cursor = System.Windows.Forms.Cursors.Default; } } }
private bool Populate_Kit_Inventory_Fields(ref SalesLine slSalesLine, string sQuantity, string sDescription, string sItemCode) { string sInventoryGroup = ""; bool bExist = false; if (slSalesLine.txtCode.Text == "'") { slSalesLine.txtMultiplier.ReadOnly = true; slSalesLine.txtDescription.ReadOnly = false; slSalesLine.txtDiscount.ReadOnly = true; slSalesLine.txtExcPrice.ReadOnly = true; slSalesLine.txtLastInvoiceDate.Text = ""; slSalesLine.txtNet.ReadOnly = true; slSalesLine.txtQuantity.ReadOnly = true; slSalesLine.txtQuantity.Text = "0.00"; slSalesLine.txtUnit.ReadOnly = true; slSalesLine.txtStore.ReadOnly = true; slSalesLine.txtDescription.Focus(); slSalesLine.bDoCalculation = false; //bAllowDuplicateLines = false; //allways allow duplicates on request Wonderboom 01/09/2012 return true; } else { slSalesLine.txtMultiplier.ReadOnly = false; slSalesLine.txtDiscount.ReadOnly = false; slSalesLine.txtExcPrice.ReadOnly = false; slSalesLine.txtQuantity.ReadOnly = false; slSalesLine.txtMultiplier.Text = sQuantity; slSalesLine.bDoCalculation = true; using (PsqlConnection oConn = new PsqlConnection(Solsage_Process_Management_System.Classes.Connect.sPastelConnStr)) { oConn.Open(); string sSql = "SELECT distinct Inventory.*, MultiStoreTrn.SellExcl01 from Inventory "; sSql += " left join MultiStoreTrn on Inventory.ItemCode = MultiStoreTrn.ItemCode "; sSql += " where (MultiStoreTrn.StoreCode = '" + slSalesLine.txtStore.Text.Trim() + "')and (Inventory.ItemCode = '" + slSalesLine.txtCode.Text.Trim() + "')"; PsqlDataReader rdReader = Solsage_Process_Management_System.Classes.Connect.getDataCommand(sSql, oConn).ExecuteReader(); while (rdReader.Read()) { //check if inventory is available bExist = true; if ((rdReader["UserDefText01"].ToString().Trim().ToUpper() == "ORDER" || rdReader["UserDefText01"].ToString().Trim().ToUpper() == "RESERVED" || rdReader["UserDefText01"].ToString().Trim().ToUpper() == "WORKSHOP") && (rdReader["UserDefNum02"].ToString() != "1")) //UserDefNum02 = Allow duplicates { //inventory is not available MessageBox.Show("Inventory is currently not available.\r\n\r\nStatus: " + rdReader["UserDefText01"].ToString().Trim() + "\r\nExpected date back: " + rdReader["UserDefText03"].ToString().Trim() + "\r\nReference number: " + rdReader["UserDefText02"].ToString().Trim(), "Item Not Available", MessageBoxButtons.OK, MessageBoxIcon.Warning); clearLine(); slSalesLine.txtCode.Focus(); slSalesLine.bNextLine = false; return false; } if (!bNextLine) { bNextLine = true; SalesLine slNewline = new SalesLine(); ((Documents.SalesOrder)(Parent.Parent.Parent.Parent)).AddSalesLine(slNewline); } sInventoryGroup = rdReader["UserDefNum01"].ToString(); // 0 = Consumable; 1 = Lease Item; 2 = Returable Consumable slSalesLine.txtUnit.Text = rdReader["UnitSize"].ToString(); if (sInventoryGroup == "1") { slSalesLine.lblDeliveryDate.Visible = false; slSalesLine.lblReturnDate.Visible = false; slSalesLine.dtDelivery.Visible = true; slSalesLine.dtReturnDate.Visible = true; slSalesLine.dtDelivery.Value = ((Documents.SalesOrder)(Parent.Parent.Parent.Parent)).dtDeliveryDate.Value; slSalesLine.dtReturnDate.Value = dtDelivery.Value; //LL 12/02/2010 - Adding rules for Site Fasilities if (Global.bUseCalculationRules) { bool bCalcRuleExists = GetCalculationRule(slSalesLine.txtUnit.Text); if (bCalcRuleExists) { slSalesLine.txtUnitFormula.Visible = true; slSalesLine.txtUnitFormula.Text = slSalesLine.txtUnit.Text; slSalesLine.txtLineRuleID.Text = sLineCalcRuleID; slSalesLine.txtUnit.Text = sLineCalcUnit; slSalesLine.cmdFromulaFinder.Visible = true; slSalesLine.txtUnit.Visible = false; } } //LL 12/02/2010 - Adding rules for Site Fasilities end } else { slSalesLine.lblDeliveryDate.Visible = true; slSalesLine.lblReturnDate.Visible = true; slSalesLine.dtDelivery.Visible = false; slSalesLine.dtReturnDate.Visible = false; slSalesLine.cmdFromulaFinder.Visible = false; slSalesLine.txtUnitFormula.Visible = false; slSalesLine.txtUnit.Visible = true; } //LL Phalaborwa Trim() slSalesLine.txtDescription.Text = sDescription; if (((Documents.SalesOrder)(Parent.Parent.Parent.Parent)).bInvoiceMode) { slSalesLine.chkReturn.Checked = true; } try { slSalesLine.txtExcPrice.Text = Convert.ToDecimal(rdReader["SellExcl01"].ToString()).ToString("N2"); dOriginalUnitPrice = Convert.ToDecimal(rdReader["SellExcl01"].ToString()); } catch { slSalesLine.txtExcPrice.Text = "0.00"; } slSalesLine.txtTaxType.Text = rdReader["SalesTaxType"].ToString().Trim(); slSalesLine.txtDiscountType.Text = rdReader["DiscountType"].ToString().Trim(); slSalesLine.sLineType = Functions.getLineInventoryType(slSalesLine.txtCode.Text.Trim()); if (slSalesLine.txtTaxType.Text == "0" || slSalesLine.txtTaxType.Text == "2") { slSalesLine.txtNet.BackColor = Color.Yellow; } else { slSalesLine.txtNet.BackColor = Color.White; } //if (rdReader["UserDefNum02"].ToString() == "1") //AJD 12-08-2009 //allways allow duplicates on request Wonderboom 01/09/2012 //{ // bAllowDuplicateLines = true; //} if (rdReader["DiscountType"].ToString() == "0" || rdReader["DiscountType"].ToString() == "1")//AJD 20-08-2009 { slSalesLine.txtDiscount.ReadOnly = true; } }//end while rdReader.Close(); oConn.Dispose(); if (!bExist) { MessageBox.Show("Code does not exist.", "Inventory Not Found", MessageBoxButtons.OK, MessageBoxIcon.Warning); slSalesLine.txtDescription.ReadOnly = true; return false; } else { if (sInventoryGroup == "1") { txtQuantity.ReadOnly = false; if (bAllowDuplicateLines && !(txtDescription.Text.StartsWith("*D")) && txtCode.Text != "'") { txtMultiplier.ReadOnly = false; } else { txtMultiplier.ReadOnly = true; } } else // Consumables { txtMultiplier.ReadOnly = false; txtQuantity.ReadOnly = true; } slSalesLine.txtDescription.ReadOnly = false; } return true; } } }
public void InsertSalesLine(int iLineIndex, SalesLine slNewLine) { for (int iLines = 0; iLines < aSaleslines.Length; iLines++) { SalesLine slThisline = (((SalesLine)aSaleslines[iLines])); if (slThisline.iLineIndex == iLineIndex)//start line { Array.Resize<Control>(ref aSaleslines, aSaleslines.Length + 1);//Add new row iLineRowIndex++; for (int iShiftLines = aSaleslines.Length-1; iShiftLines > iLines+1; iShiftLines--) { aSaleslines[iShiftLines] = aSaleslines[iShiftLines - 1]; (((SalesLine)aSaleslines[iShiftLines])).Location = new Point((((SalesLine)aSaleslines[iShiftLines-1])).Location.X, (((SalesLine)aSaleslines[iShiftLines-1])).Location.Y + 20); // move location of control to new position (((SalesLine)aSaleslines[iShiftLines])).iLineIndex++;//sync the lineindex of the control array } aSaleslines[iLines + 1] = slNewLine; slNewLine.Top = 17 + ((iLineIndex+1) * 20); slNewLine.Left = 4; if (slNewLine.txtStore.Text == "") { slNewLine.txtStore.Text = Global.sDefaultStore; } slNewLine.TabIndex = 50 + aSaleslines.Length; slNewLine.TabStop = true; slNewLine.iLineIndex = iLines + 1; slNewLine.Name = "slNewLine_" + (aSaleslines.Length - 1).ToString(); this.pnlDetails.Controls.Add(slNewLine); slNewLine.BringToFront(); return; } } }
public void loadLines(string sSalesCode, string sStore, string sCode, string sDescription, string sUnit, string sQty, string sExcPrice, string sDiscount, string sTaxType, string sLinkNum, string sDiscountType, string sLineType) { bool bLeaseItem = false; bool bInsert = false; int iInsertPos = 0; //LL Discount displyed incorrectly 18/09/2009 double dDiscount = Convert.ToDouble(sDiscount.Trim()) / 100; SalesLine slNewLine = new SalesLine(); slNewLine.bDoCalculation = false; //Do totals only after the control has been loaded. slNewLine.txtStore.Text = sStore.Trim(); slNewLine.txtCode.Text = sCode.Trim(); slNewLine.txtDescription.Text = sDescription.Trim(); slNewLine.txtUnit.Text = sUnit.Trim(); slNewLine.txtQuantity.Text = Convert.ToDecimal(sQty.Trim()).ToString("N2"); slNewLine.txtExcPrice.Text = (Convert.ToDouble(sExcPrice.Trim())).ToString("N2"); slNewLine.txtDiscount.Text = dDiscount.ToString("N2"); slNewLine.txtDiscountType.Text = sDiscountType; slNewLine.bNextLine = true; //Don't allow new rows if code field loose focus() double dTotalExDiscount = Convert.ToDouble(slNewLine.txtQuantity.Text.Replace(",", "")) * Convert.ToDouble(slNewLine.txtExcPrice.Text.Replace(",", "")); slNewLine.txtNet.Text = (dTotalExDiscount - (dTotalExDiscount * (Convert.ToDouble(slNewLine.txtDiscount.Text.Replace(",", "")) / 100))).ToString("N2"); slNewLine.sPastelLineLink = sLinkNum; slNewLine.txtTaxType.Text = sTaxType; if (sTaxType == "0" || sTaxType == "2") { slNewLine.txtNet.BackColor = Color.Yellow; } //Decode DownTime String if (sDescription.StartsWith("*D")) { bInsert = true; slNewLine.txtStore.Visible = false; slNewLine.txtCode.Text = "*DT-" + sDescription.Substring(3, 15).Trim(); // Add *DT to start to stop process enigine from using this line for update in returned items slNewLine.txtDescription.Text = "Down Time Processed"; slNewLine.txtQuantity.Text = Convert.ToDouble(sDescription.Substring(18,6)).ToString("N2"); slNewLine.lblDeliveryDate.Text = sDescription.Substring(24, 2) + "/" + sDescription.Substring(26, 2) + "/20" + sDescription.Substring(28, 2); slNewLine.lblReturnDate.Text = sDescription.Substring(30, 2) + "/" + sDescription.Substring(32, 2) + "/20" + sDescription.Substring(34, 2); slNewLine.txtExcPrice.Visible = false; slNewLine.txtDiscount.Visible = false; slNewLine.txtNet.Visible = false; iInsertPos = Functions.getSalesLineIndex(sDescription.Substring(3, 15).Trim(), Convert.ToInt32(sDescription.Substring(36, 3).Trim()).ToString(), aSaleslines); slNewLine.chkReturn.Visible = false; slNewLine.txtQuantity.ForeColor = Color.Red; slNewLine.txtQuantity.BackColor = Color.White; slNewLine.sParentLinkNum = Convert.ToInt32(sDescription.Substring(36, 3).Trim()).ToString(); slNewLine.txtMultiplier.Visible = false; slNewLine.chkReturn.Visible = false; } if (slNewLine.txtCode.Text == "'") { slNewLine.chkReturn.Visible = false; slNewLine.txtMultiplier.Visible = false; slNewLine.txtQuantity.Visible = false; slNewLine.txtDiscount.Visible = false; slNewLine.txtExcPrice.Visible = false; slNewLine.txtNet.Visible = false; slNewLine.lblReturnDate.Visible = false; slNewLine.lblDeliveryDate.Visible = false; } //Add dates to line PsqlConnection oConn = new PsqlConnection(Solsage_Process_Management_System.Classes.Connect.sConnStr); oConn.Open(); string sSql = "SELECT DeliveryDate, ReturnDate, LastInvoiceDate, Status, LinkNum, Multiplier, Qty, ItemCode, sCalculationRule from SOLHL where Header = '" + sSalesCode + "' and ItemCode = '" + sCode.Trim().Replace("'", "downtime") + "' and LinkNum = " + sLinkNum; PsqlDataReader rdReader = Solsage_Process_Management_System.Classes.Connect.getDataCommand(sSql, oConn).ExecuteReader(); while (rdReader.Read()) { bLeaseItem = true; if (rdReader["DeliveryDate"].ToString().Trim() == "" || rdReader["DeliveryDate"].ToString().Trim() == "-" || Functions.getLineInventoryType(rdReader["ItemCode"].ToString().Trim()) != "1") //AJD PHALA { bLeaseItem = false; slNewLine.dtReturnDate.Visible = false; slNewLine.lblDeliveryDate.Visible = true; slNewLine.dtReturnDate.Visible = false; slNewLine.lblReturnDate.Visible = true; } else { slNewLine.dtDelivery.Value = new DateTime(1900, 1, 1, 0, 0, 0); slNewLine.dtDelivery.Enabled = false; try { try { DateTime dtClock = new DateTime(Convert.ToInt32(rdReader["ReturnDate"].ToString().Substring(6, 4)), Convert.ToInt32(rdReader["ReturnDate"].ToString().Substring(3, 2)), Convert.ToInt32(rdReader["ReturnDate"].ToString().Substring(0, 2)), Convert.ToInt32(rdReader["ReturnDate"].ToString().Substring(11, 2)), Convert.ToInt32(rdReader["ReturnDate"].ToString().Substring(14, 2)), 0); slNewLine.dtReturnDate.Value = new DateTime(Convert.ToInt32(rdReader["ReturnDate"].ToString().Substring(6, 4)), Convert.ToInt32(rdReader["ReturnDate"].ToString().Substring(3, 2)), Convert.ToInt32(rdReader["ReturnDate"].ToString().Substring(0, 2))); slNewLine.toolTip1.SetToolTip(slNewLine.dtReturnDate, Convert.ToString(dtClock.TimeOfDay)); } catch { slNewLine.dtReturnDate.Value = new DateTime(Convert.ToInt32(rdReader["ReturnDate"].ToString().Substring(6, 4)), Convert.ToInt32(rdReader["ReturnDate"].ToString().Substring(3, 2)), Convert.ToInt32(rdReader["ReturnDate"].ToString().Substring(0, 2))); } } catch (Exception ex) { slNewLine.dtReturnDate.Value = Convert.ToDateTime(rdReader["LastInvoiceDate"]); } try { try { DateTime dtClock = new DateTime(Convert.ToInt32(rdReader["DeliveryDate"].ToString().Substring(6, 4)), Convert.ToInt32(rdReader["DeliveryDate"].ToString().Substring(3, 2)), Convert.ToInt32(rdReader["DeliveryDate"].ToString().Substring(0, 2)), Convert.ToInt32(rdReader["DeliveryDate"].ToString().Substring(11, 2)), Convert.ToInt32(rdReader["DeliveryDate"].ToString().Substring(14, 2)), 0); slNewLine.dtDelivery.Value = new DateTime(Convert.ToInt32(rdReader["DeliveryDate"].ToString().Substring(6, 4)), Convert.ToInt32(rdReader["DeliveryDate"].ToString().Substring(3, 2)), Convert.ToInt32(rdReader["DeliveryDate"].ToString().Substring(0, 2))); slNewLine.toolTip1.SetToolTip(slNewLine.dtDelivery, Convert.ToString(dtClock.TimeOfDay)); } catch { slNewLine.dtDelivery.Value = new DateTime(Convert.ToInt32(rdReader["DeliveryDate"].ToString().Substring(6, 4)), Convert.ToInt32(rdReader["DeliveryDate"].ToString().Substring(3, 2)), Convert.ToInt32(rdReader["DeliveryDate"].ToString().Substring(0, 2))); } } catch (Exception ex) { slNewLine.dtDelivery.Value = slNewLine.dtReturnDate.Value; } } if (rdReader["LastInvoiceDate"].ToString() != "") { slNewLine.txtLastInvoiceDate.Text = Convert.ToDateTime( rdReader["LastInvoiceDate"]).ToString("dd/MM/yyyy"); slNewLine.picInfo.Visible = false; //can delete allready invoiced items } if (rdReader["status"].ToString() == "1") { slNewLine.txtStatus.Text = "1"; slNewLine.picReturned.Visible = true; slNewLine.dtDelivery.Enabled = false; slNewLine.dtReturnDate.Enabled = false; slNewLine.picDelete.Visible = false; slNewLine.chkReturn.Visible = false; } else { slNewLine.chkReturn.Visible = true; } slNewLine.dMaxMultiplierValue = Convert.ToDecimal(rdReader["Multiplier"].ToString()); slNewLine.txtMultiplier.Text = slNewLine.dMaxMultiplierValue.ToString("N2"); slNewLine.txtQuantity.Text = Convert.ToDecimal(rdReader["Qty"].ToString()).ToString("N2"); slNewLine.txtUnitFormula.Text = rdReader["sCalculationRule"].ToString().Trim(); } if (slNewLine.dMaxMultiplierValue == 0) { slNewLine.dMaxMultiplierValue = 1; } if (bLeaseItem ) { slNewLine.lblDeliveryDate.Visible = false; slNewLine.lblReturnDate.Visible = false; slNewLine.dtReturnDate.Visible = true; slNewLine.dtDelivery.Visible = true; } rdReader.Close(); oConn.Dispose(); //LL Phalaborwa if else if (sDescription.StartsWith("*D")) { slNewLine.bAllowDuplicateLines = true; } else { using (PsqlConnection oPastel = new PsqlConnection(Connect.sPastelConnStr)) { oPastel.Open(); //Gee Error aas Item met Itemode ' gelaai word if (sCode.Trim() != "'" && sCode.Trim() != "") { sSql = "Select UserDefNum02 from inventory where ItemCode ='" + sCode.Trim() + "'"; //AJD 20-08-2009 - Check if duplicates is allowed if (Connect.getDataCommand(sSql, oPastel).ExecuteScalar().ToString() == "1") { slNewLine.bAllowDuplicateLines = true; } } oPastel.Dispose(); } } if (sLineType == "1") { slNewLine.txtQuantity.ReadOnly = false; if (slNewLine.bAllowDuplicateLines && !(sDescription.StartsWith("*D")) && slNewLine.txtCode.Text != "'") { slNewLine.txtMultiplier.ReadOnly = false; } else { slNewLine.txtMultiplier.ReadOnly = true; } } else // Consumables { slNewLine.txtMultiplier.ReadOnly = false; slNewLine.txtQuantity.ReadOnly = true; } if (iLockedStatus == 1) { slNewLine.dtDelivery.Enabled = false; slNewLine.picDelete.Enabled = false; slNewLine.chkReturn.Enabled = false; slNewLine.cmdCodeSearch.Enabled = false; slNewLine.txtCode.Enabled = false; slNewLine.txtDescription.Enabled = false; slNewLine.cmdFromulaFinder.Enabled = false; cmdSaveOrder.Enabled = false; gbExcludeDays.Enabled = false; //txtCoordinates.Enabled = false; dtForecastDate.Enabled = false; txtInfoForecastDate.Enabled = false; picEditAddress.Enabled = false; chkCollected.Enabled = false; chkPrintOnSave.Enabled = false; gbStatus.Visible = false; picLocked.Visible = true; lblLocked.Visible = true; } else { slNewLine.dtDelivery.Enabled = true; slNewLine.picDelete.Enabled = true; slNewLine.chkReturn.Enabled = true; slNewLine.cmdCodeSearch.Enabled = true; slNewLine.txtCode.Enabled = true; slNewLine.txtDescription.Enabled = true; slNewLine.cmdFromulaFinder.Enabled = true; cmdSaveOrder.Enabled = true; gbExcludeDays.Enabled = true; txtCoordinates.Enabled = true; dtForecastDate.Enabled = true; txtInfoForecastDate.Enabled = true; picEditAddress.Enabled = true; chkCollected.Enabled = false; chkPrintOnSave.Enabled = false; gbStatus.Visible = true; picLocked.Visible = false; lblLocked.Visible = false; } slNewLine.bDoCalculation = true; slNewLine.sLineType = sLineType; if (bInsert) { InsertSalesLine(iInsertPos, slNewLine); } else { AddSalesLine(slNewLine); } if (bBlockedCustomer) slNewLine.picDelete.Visible = false; //enable return checkbox according to user rights for wonderboom if (Global.sInvoiceTemplate == "Talisman - Wonderboom") { if (Global.iReturnItem == 1) { slNewLine.chkReturn.Enabled = true; } else { slNewLine.chkReturn.Enabled = false; } } }
public void focusNextLine(int iLineIndex) { //LL 17/09/2009 - start if ((iLineIndex >= aSaleslines.Length && txtNumber.Text == "*NEW*") || (iLineIndex >= aSaleslines.Length && txtNumber.Text == "")) { if (txtNumber.Text == "") txtNumber.Text = "*NEW*"; //LL 17/09/2009 - end SalesLine slNewline = new SalesLine(); AddSalesLine(slNewline); } if (iLineIndex < aSaleslines.Length) { SalesLine slNewLine = (SalesLine)aSaleslines[iLineIndex]; slNewLine.txtCode.Focus(); } }
private void manageFrontEnd() { Control cntSelectedControl = this.ActiveControl; switch (cntSelectedControl.Name) { case "txtNumber": if (txtNumber.Text == "") { cmdSearchNumber_Click(null, null); } else if (txtNumber.Text != "*NEW*") { loadSalesOrder(txtNumber.Text); } else { txtCustomerCode.Focus(); } break; case "txtCustomerCode": if (txtCustomerCode.Text == "") { findCustomer(txtCustomerCode); } else { loadCustomer(false, false); if (aSaleslines.Length == 0) { SalesLine slNewLine = new SalesLine(); AddSalesLine(slNewLine); } } break; case "txtDelAd1": txtDelAd2.Focus(); break; case "txtDelAd2": txtDelAd3.Focus(); break; case "txtDelAd3": txtDelAd4.Focus(); break; case "txtDelAd4": txtDelAd5.Focus(); break; case "txtDelAd5": txtContact.Focus(); break; case "txtContact": txtTelephone.Focus(); break; case "txtTelephone": txtFax.Focus(); break; case "txtFax": txtMobile.Focus(); break; case "txtMobile": txtEmail.Focus(); break; case "txtEmail": dtDate.Focus(); break; //LL Phalaborwa case "selAddresses": dtDate.Focus(); break; //LL end case "dtDate": txtSalesCode.Focus(); break; case "txtSalesCode": txtDiscount.Focus(); break; case "cmdSalesPerson": txtDiscount.Focus(); break; case "txtDiscount": dtDeliveryDate.Focus(); break; case "dtDeliveryDate": txtOrderNumber.Focus(); break; case "txtOrderNumber": focusNextLine(0); break; } }
public void deleteSalesLine(SalesLine slDeletedLine, bool bDeleteLastLine) { bool bDeleteControl = false; for (int iLines = 0; iLines < aSaleslines.Length; iLines++) { SalesLine slThisline = (((SalesLine)aSaleslines[iLines])); if (iLines != aSaleslines.Length - 1 || bDeleteLastLine) //Never delete the last row { if (slDeletedLine.Name == slThisline.Name) { bDeleteControl = true; this.pnlDetails.Controls.Remove(slDeletedLine); if (iLines != aSaleslines.Length - 1) { (((SalesLine)aSaleslines[iLines + 1])).txtCode.Focus(); // focus on the next line } } if (bDeleteControl && iLines != aSaleslines.Length - 1) //resize the line array { aSaleslines[iLines] = aSaleslines[iLines + 1]; //Move all the controls one up in the list (((SalesLine)aSaleslines[iLines + 1])).Location = new Point((((SalesLine)aSaleslines[iLines + 1])).Location.X, (((SalesLine)aSaleslines[iLines + 1])).Location.Y - 20); // move location of control to new position (((SalesLine)aSaleslines[iLines + 1])).iLineIndex--;//sync the lineindex of the control array } } } if (bDeleteControl)//update the line array { Array.Resize<Control>(ref aSaleslines, aSaleslines.Length - 1); iLineRowIndex--; } addTotals(); //Check if you want to close the order if (aSaleslines.Length == 0) { if(MessageBox.Show("There are no more lines in this order. Do you want to close this order?","Close Order?", MessageBoxButtons.YesNoCancel,MessageBoxIcon.Question) == DialogResult.Yes) { Functions.CloseOrder(txtNumber.Text.Trim()); } } }
private void cmdNewLine_Click(object sender, EventArgs e) { SalesLine slNewline = new SalesLine(); AddSalesLine(slNewline); slNewline.bNextLine = true; slNewline.txtCode.Focus(); slNewline.bFocusOnNextLine = false; addUpdateInstruction(slNewline.Name, 1, slNewline,slNewline.txtQuantity.Text,slNewline.txtMultiplier.Text); }
public void AddSalesLine(SalesLine slNewLine) { slNewLine.chkReturn.Enabled = true; if (slNewLine.bInsertInMiddle == false) { Array.Resize<Control>(ref aSaleslines, aSaleslines.Length + 1); aSaleslines[aSaleslines.Length - 1] = slNewLine; if (iLineRowIndex < 14) slNewLine.Top = 17 + ((iLineRowIndex) * 20); else slNewLine.Top = 268; //16 + ((iLineRowIndex) * 18); slNewLine.Left = 4; if (slNewLine.txtStore.Text == "") { slNewLine.txtStore.Text = Global.sDefaultStore; } slNewLine.TabIndex = 50 + aSaleslines.Length; slNewLine.TabStop = true; slNewLine.iLineIndex = aSaleslines.Length - 1; slNewLine.Name = "slNewLine_" + (aSaleslines.Length - 1).ToString(); //enable chkreturn according to user rights if (Global.sInvoiceTemplate == "Talisman - Wonderboom") { if (Global.iReturnItem == 1) { slNewLine.chkReturn.Enabled = true; } else { slNewLine.chkReturn.Enabled = false; } } this.pnlDetails.Controls.Add(slNewLine); slNewLine.BringToFront(); iLineRowIndex++; } else { Array.Resize<Control>(ref aSaleslines, aSaleslines.Length + 1); aSaleslines[aSaleslines.Length - 1] = slNewLine; if (iLineRowIndex < 14) slNewLine.Top = 17 + ((Convert.ToInt16(slNewLine.sPastelLineLink) - 1) * 20); else slNewLine.Top = 268; //16 + ((iLineRowIndex) * 18); slNewLine.Left = 4; if (slNewLine.txtStore.Text == "") { slNewLine.txtStore.Text = Global.sDefaultStore; } slNewLine.TabIndex = 50 + aSaleslines.Length; slNewLine.TabStop = true; slNewLine.iLineIndex = Convert.ToInt16(slNewLine.sPastelLineLink) - 1; slNewLine.Name = "slNewLine_" + (aSaleslines.Length - 1).ToString(); //enable chkreturn according to user rights if (Global.sInvoiceTemplate == "Talisman - Wonderboom") { if (Global.iReturnItem == 1) { slNewLine.chkReturn.Enabled = true; } else { slNewLine.chkReturn.Enabled = false; } } this.pnlDetails.Controls.Add(slNewLine); slNewLine.BringToFront(); iLineRowIndex++; } }