Beispiel #1
0
        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();
            //}
        }
Beispiel #2
0
 private void ProcessReturnItems(PsqlConnection oPasConn, PsqlConnection oSolConn, ref SalesLine slActive)
 {
 }
Beispiel #3
0
        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;
        }
Beispiel #4
0
        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);
        }
Beispiel #5
0
        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;
        }
Beispiel #6
0
        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;
                }
            }
        }
Beispiel #8
0
        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;
                }
            }
        }
Beispiel #9
0
        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;
                }
            }
        }
Beispiel #10
0
        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;
                }
            }
        }
Beispiel #11
0
 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();
     }
 }
Beispiel #12
0
        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;

            }
        }
Beispiel #13
0
        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());
                }
            }
        }
Beispiel #14
0
 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);
 }
Beispiel #15
0
        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++;

            }
        }