Click here to Skip to main content
15,892,737 members
Articles / Multimedia / GDI+

Internal Supply Chain, Visibility via 200 plus 3D Chart Reports - Part II

Rate me:
Please Sign up or sign in to vote.
5.00/5 (15 votes)
8 Oct 2009CPOL4 min read 53.8K   5.3K   46  
This article focuses on internal supply chain management systems visibility via chart reports, and provides assessment apparatus to manage and monitor activities spawned during business processes, hence paves the way for timely and precise business decisions.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace ISCMS.Dialog
{
    public partial class Transaction : Hasan.FormCustom
    {
        ISCMS.MainForm mainFrom;
        Job jobForm;
        public int Transaction_Status_ID;
        public int Transaction_Type_ID;
        bool Is_Raw_Material;
        bool Is_Job;
        int Job_ID;
        bool Is_Non_Cost;

        public Transaction()
        {
            InitializeComponent();
        }

        public Transaction(ISCMS.MainForm form, int transaction_Status_ID, int transaction_Type_ID, bool is_Raw_Material)
        {
            InitializeComponent();
            mainFrom = form;
            Transaction_Status_ID = transaction_Status_ID;
            Transaction_Type_ID = transaction_Type_ID;
            Is_Raw_Material = is_Raw_Material;

            if( Is_Raw_Material )
                combGoods.InitSort(MainForm.dsData, "Goods", "Name", "Goods_ID", 3, " Is_Raw_Material ", " Name ASC ");
            else
                combGoods.InitSort(MainForm.dsData, "Goods", "Name", "Goods_ID", 3, " Is_Raw_Material = False or Is_Dual ", " Name ASC  ");

            // no cost
            if (
                (Transaction_Type_ID == 2 && Transaction_Status_ID == 5 && Is_Raw_Material)
                || (Transaction_Type_ID == 1 && Transaction_Status_ID == 2 && !Is_Raw_Material)
                || (Transaction_Type_ID == 1 && Transaction_Status_ID == 1 && !Is_Raw_Material )
                || (Transaction_Type_ID == 1 && Transaction_Status_ID == 3 && !Is_Raw_Material )
                )
            {
                txtCost.Enabled = false;
                btnCost.Enabled = false;
                btnCost.Visible = false;
                Is_Non_Cost = true;
            }
            else
            {
                txtCost.Enabled = true;
                btnCost.Enabled = true;
                btnCost.Visible = true;
                Is_Non_Cost = false;
            }

            this.SetStyle(ControlStyles.UserPaint |
              ControlStyles.AllPaintingInWmPaint |
              ControlStyles.ResizeRedraw |
              ControlStyles.ContainerControl |
              ControlStyles.OptimizedDoubleBuffer |
              ControlStyles.SupportsTransparentBackColor
              , true);
        }


        public Transaction(ISCMS.MainForm form, int transaction_Status_ID, int transaction_Type_ID, bool is_Raw_Material,
            bool is_Job, int job_ID):this( form,transaction_Status_ID,transaction_Type_ID,is_Raw_Material)
        {
            Is_Job = is_Job;
            Job_ID = job_ID;
        }

        public Transaction(ISCMS.MainForm form, int transaction_Status_ID, int transaction_Type_ID, bool is_Raw_Material,
            bool is_Job, int job_ID, Job m_JobFrom,string start_Date)
            : this(form, transaction_Status_ID, transaction_Type_ID, is_Raw_Material)
        {
            Is_Job = is_Job;
            Job_ID = job_ID;
            jobForm = m_JobFrom;
            Date.Value = DateTime.Parse(start_Date);
            if (Is_Job)
            {
                Date.Enabled = false;
                Time.Enabled = false;
            }
        }

        void Current_Stock()
        {
            ISCMS.DataAccess.Access ac = new ISCMS.DataAccess.Access();
            System.Data.DataSet ds = ac.CheckGoodsAvailability(Date.Value.ToShortDateString(), Convert.ToInt32(combGoods.SelectedValue));
            DataRow[] rows = ds.Tables[0].Select();
            string str = "";
            if (Is_Raw_Material)
            {
                if (rows.Length == 0 || rows[0]["Incomming_Current"].ToString().Length == 0)
                {
                    str = " CS = 0, TS = 0, RS = 0";
                }
                else
                {
                    // current stock
                    str += " CS = " + Convert.ToString(Convert.ToInt32(rows[0]["Incomming_Current"]??0)
                                                - Convert.ToInt32(rows[0]["Outgoing_Finished"] ?? 0)
                                                - Convert.ToInt32(rows[0]["Outgoing_Expected"] ?? 0)
                                                - Convert.ToInt32(rows[0]["Outgoing_Waste"] ?? 0)
                                                - Convert.ToInt32(rows[0]["Outgoing_InProcess"] ?? 0)) + ", ";

                    // In transit stock
                    str += " TS = " + Convert.ToString(Convert.ToInt32(rows[0]["Incomming_Expected"] ?? 0)) + ", ";

                    // Reserve stock
                    str += " RS = " + Convert.ToString(Convert.ToInt32(rows[0]["Outgoing_Expected"] ?? 0)) + ", ";
                }
            }
            else
            {
                if (rows.Length == 0 || rows[0]["Incomming_Current"].ToString().Length == 0)
                {
                    str = " CS = 0, RS = 0, PP = 0, MP = 0";
                }
                else
                {
                    // current stock
                    str += " CS = " + Convert.ToString(Convert.ToInt32(rows[0]["Incomming_Current"] ?? 0)
                            - Convert.ToInt32(rows[0]["Outgoing_InProcess"] ?? 0)
                            - Convert.ToInt32(rows[0]["Outgoing_Expected"] ?? 0)
                            - Convert.ToInt32(rows[0]["Outgoing_Sold"] ?? 0)
                            - Convert.ToInt32(rows[0]["Outgoing_Waste"] ?? 0)) + ", ";

                    // Pending phase
                    str += " TS = " + Convert.ToString(Convert.ToInt32(rows[0]["Incomming_Expected"] ?? 0)) + ", ";

                    // Reserve stock
                    str += " RS = " + Convert.ToString(Convert.ToInt32(rows[0]["Outgoing_Expected"] ?? 0)) + ", ";

                    // Manufacturing Phase
                    str += " MP = " + Convert.ToString(Convert.ToInt32(rows[0]["Outgoing_InProcess"] ?? 0)) + ", ";

                }

            }
            lblCurrentStock.Text = str;
            
            lblCurrent_Per_Unit_Cost.Text = " Current Rate " +  
               string.Format("{0:c}", ac.GetCurrentCost(Convert.ToInt32(combGoods.SelectedValue),
               Is_Raw_Material,Date.Value.ToShortDateString()) );
            
        }

        int GetGoodsUnit(DataRow[] rows)
        {
            if (Is_Raw_Material)
            {
                #region
                
                if (Transaction_Type_ID == 2)
                {

                    if (rows.Length == 0 || rows[0]["Incomming_Current"].ToString().Length == 0)
                    {
                        return 0;
                    }


                    // Outgoing Expected
                    if (Transaction_Type_ID == 2 && Transaction_Status_ID == 2)
                    {
                        return Convert.ToInt32(rows[0]["Incomming_Current"] ?? 0) + Convert.ToInt32(rows[0]["Incomming_Expected"] ?? 0) - Convert.ToInt32(rows[0]["Outgoing_Expected"] ?? 0)
                         - Convert.ToInt32(rows[0]["Outgoing_InProcess"] ?? 0) - Convert.ToInt32(rows[0]["Outgoing_Waste"] ?? 0)
                         + Convert.ToInt32(rows[0]["Incomming_Expected"] ?? 0);
                    }

                    // outgoing InProcess
                    if (Transaction_Type_ID == 2 && Transaction_Status_ID == 3)
                    {
                        return Convert.ToInt32(rows[0]["Incomming_Current"] ?? 0) - Convert.ToInt32(rows[0]["Outgoing_Expected"] ?? 0)
                         - Convert.ToInt32(rows[0]["Outgoing_InProcess"] ?? 0) - Convert.ToInt32(rows[0]["Outgoing_Waste"] ?? 0);
                    }

                    // outgoing Waste
                    if (Transaction_Type_ID == 2 && Transaction_Status_ID == 6)
                    {
                        return Convert.ToInt32(rows[0]["Incomming_Current"] ?? 0) - Convert.ToInt32(rows[0]["Outgoing_Expected"] ?? 0)
                        - Convert.ToInt32(rows[0]["Outgoing_InProcess"] ?? 0) - Convert.ToInt32(rows[0]["Outgoing_Waste"] ?? 0);
                    }
                }



                if (Transaction_Type_ID == 1)
                {

                    if (rows.Length == 0 || rows[0]["Incomming_Current"].ToString().Length == 0)
                    {
                        return 0;
                    }


                    // Incomming current
                    if (Transaction_Type_ID == 1 && Transaction_Status_ID == 1)
                    {
                        return Convert.ToInt32(rows[0]["Incomming_Current"] ?? 0)
                                            - Convert.ToInt32(rows[0]["Outgoing_Finished"] ?? 0)
                                            - Convert.ToInt32(rows[0]["Outgoing_Expected"] ?? 0)
                                            - Convert.ToInt32(rows[0]["Outgoing_Waste"] ?? 0)
                                            - Convert.ToInt32(rows[0]["Outgoing_InProcess"] ?? 0);
                    }

                    // Incomming expected
                    if (Transaction_Type_ID == 1 && Transaction_Status_ID == 2)
                    {
                        return Convert.ToInt32(rows[0]["Incomming_Current"] ?? 0)
                                            - Convert.ToInt32(rows[0]["Outgoing_Finished"] ?? 0)
                                            - Convert.ToInt32(rows[0]["Outgoing_Expected"] ?? 0)
                                            - Convert.ToInt32(rows[0]["Outgoing_Waste"] ?? 0)
                                            - Convert.ToInt32(rows[0]["Outgoing_InProcess"] ?? 0);
                    }
                }
                #endregion
            }
            else
            {
                if (Transaction_Type_ID == 2)
                {
                    if (rows.Length == 0 || rows[0]["Incomming_Current"].ToString().Length == 0)
                    {
                        return 0;
                    }

                    // Outgoing Expected
                    if (Transaction_Type_ID == 2 && Transaction_Status_ID == 2)
                    {
                        return Convert.ToInt32(rows[0]["Incomming_Current"] ?? 0) - Convert.ToInt32(rows[0]["Outgoing_Expected"] ?? 0)
                         - Convert.ToInt32(rows[0]["Outgoing_InProcess"] ?? 0) - Convert.ToInt32(rows[0]["Outgoing_Waste"] ?? 0)
                         + Convert.ToInt32(rows[0]["Incomming_Expected"] ?? 0);
                    }

                    // Sale
                    if (Transaction_Type_ID == 2 && Transaction_Status_ID == 4)
                    {
                        return Convert.ToInt32(rows[0]["Incomming_Current"] ?? 0) - Convert.ToInt32(rows[0]["Outgoing_Expected"] ?? 0)
                         - Convert.ToInt32(rows[0]["Outgoing_InProcess"] ?? 0) - Convert.ToInt32(rows[0]["Outgoing_Waste"] ?? 0);
                    }

                    // outgoing InProcess
                    if (Transaction_Type_ID == 2 && Transaction_Status_ID == 3)
                    {
                        return Convert.ToInt32(rows[0]["Incomming_Current"] ?? 0) - Convert.ToInt32(rows[0]["Outgoing_Expected"] ?? 0)
                         - Convert.ToInt32(rows[0]["Outgoing_InProcess"] ?? 0) - Convert.ToInt32(rows[0]["Outgoing_Waste"] ?? 0);
                    }

                    // outgoing Waste
                    if (Transaction_Type_ID == 2 && Transaction_Status_ID == 6)
                    {
                        return Convert.ToInt32(rows[0]["Incomming_Current"] ?? 0) - Convert.ToInt32(rows[0]["Outgoing_Expected"] ?? 0)
                        - Convert.ToInt32(rows[0]["Outgoing_InProcess"] ?? 0) - Convert.ToInt32(rows[0]["Outgoing_Waste"] ?? 0);
                    }
                }

                if (Transaction_Type_ID == 1)
                {
                    if (rows.Length == 0 || rows[0]["Incomming_Current"].ToString().Length == 0)
                    {
                        return 0;
                    }

                    // Incomming current
                    if (Transaction_Type_ID == 1 && Transaction_Status_ID == 1)
                    {
                        return Convert.ToInt32(rows[0]["Incomming_Current"] ?? 0)
                            + Convert.ToInt32(rows[0]["Incomming_Sold"] ?? 0)
                            - Convert.ToInt32(rows[0]["Outgoing_InProcess"] ?? 0)
                            - Convert.ToInt32(rows[0]["Outgoing_Expected"] ?? 0)
                            - Convert.ToInt32(rows[0]["Outgoing_Sold"] ?? 0)
                            - Convert.ToInt32(rows[0]["Outgoing_Waste"] ?? 0);
                    }

                    // Incomming Sold
                    if (Transaction_Type_ID == 1 && Transaction_Status_ID == 1)
                    {
                        return Convert.ToInt32(rows[0]["Incomming_Current"] ?? 0)
                             + Convert.ToInt32(rows[0]["Incomming_Sold"] ?? 0)
                             - Convert.ToInt32(rows[0]["Outgoing_InProcess"] ?? 0)
                             - Convert.ToInt32(rows[0]["Outgoing_Expected"] ?? 0)
                             - Convert.ToInt32(rows[0]["Outgoing_Sold"] ?? 0)
                             - Convert.ToInt32(rows[0]["Outgoing_Waste"] ?? 0);
                    }

                    // Incomming finised good job pending
                    if (Transaction_Type_ID == 1 && Transaction_Status_ID == 2)
                    {
                        return Convert.ToInt32(rows[0]["Incomming_Current"] ?? 0)
                             - Convert.ToInt32(rows[0]["Outgoing_InProcess"] ?? 0)
                             - Convert.ToInt32(rows[0]["Outgoing_Expected"] ?? 0)
                             - Convert.ToInt32(rows[0]["Outgoing_Sold"] ?? 0)
                             - Convert.ToInt32(rows[0]["Outgoing_Waste"] ?? 0);
                    }

                    // Incomming finised good in production
                    if (Transaction_Type_ID == 1 && Transaction_Status_ID == 3)
                    {
                        return Convert.ToInt32(rows[0]["Incomming_Current"] ?? 0)
                             - Convert.ToInt32(rows[0]["Outgoing_InProcess"] ?? 0)
                             - Convert.ToInt32(rows[0]["Outgoing_Expected"] ?? 0)
                             - Convert.ToInt32(rows[0]["Outgoing_Sold"] ?? 0)
                             - Convert.ToInt32(rows[0]["Outgoing_Waste"] ?? 0);
                    }
                }
            }
            return 0;
        }



        private void Save_Click(object sender, EventArgs e)
        {
            Save.Enabled = false;
            Cancel.Enabled = false;

            string sUnit_Cost = lblPerUnitCost.Text.Replace("$", "").Replace(",", "");
            sUnit_Cost = sUnit_Cost.Remove(sUnit_Cost.IndexOf("per"));


       
            if (Convert.ToInt32(combGoods.SelectedValue) == 0)
            {
                lblGoodsError.Visible = true;
                Save.Enabled = true;
                Cancel.Enabled = true;
                combGoods.Focus();
                return;
            }

            if ( txtQuantity.Text.Trim().Length == 0)
            {
                lblErrorQuantity.Visible = true;
                Save.Enabled = true;
                Cancel.Enabled = true;
                txtQuantity.Focus();
                return;
            }

            if (Convert.ToInt32(txtQuantity.Text) == 0)
            {
                lblErrorQuantity.Visible = true;
                Save.Enabled = true;
                Cancel.Enabled = true;
                txtQuantity.Focus();
                return;
            }

            if (Convert.ToInt32( txtCost.Text_AsDouble ) == 0 && !Is_Non_Cost )
            {
                lblErrorCost.Visible = true;
                Save.Enabled = true;
                Cancel.Enabled = true;
                txtCost.Focus();
                return;
            }

            if ( txtComments.Text.Trim().Length <  3 )
            {
                lblErrorComments.Visible = true;
                Save.Enabled = true;
                Cancel.Enabled = true;
                txtComments.Focus();
                return;
            }
            
            string sDate = Date.Value.ToShortDateString() + "  " + Time.Value.ToShortTimeString();
            ISCMS.DataAccess.Access ac = new ISCMS.DataAccess.Access();
            System.Data.DataSet ds = ac.CheckGoodsAvailability(Date.Value.ToShortDateString(), Convert.ToInt32(combGoods.SelectedValue));
            DataRow[] rows = ds.Tables[0].Select();
            int Goods_UnitSoldIntrapolate = 0;
            int Goods_UnitIntrapolate = 0;

            if (Is_Raw_Material)
            {
                if (Transaction_Type_ID == 2)
                {
                    if (rows.Length == 0 || rows[0]["Incomming_Current"].ToString().Length == 0)
                    {
                        Hasan.CMessageBox.ShowBox("Current stock level is  0 could not process the request", ( int )  Hasan.CMessageBox.Type.Error);
                        Save.Enabled = true;
                        Cancel.Enabled = true;
                        return;
                    }
                }
                Goods_UnitIntrapolate = GetGoodsUnit(rows);
            }
            else
            {
                // sales return 
                if (Transaction_Type_ID == 1 && Transaction_Status_ID == 4)
                {
                    if (rows.Length == 0 || rows[0]["Incomming_Current"].ToString().Length == 0)
                    {
                        Hasan.CMessageBox.ShowBox("There is no net sales till this date, there could not be sales return as well", (int)Hasan.CMessageBox.Type.Error);
                        Save.Enabled = true;
                        Cancel.Enabled = true;
                        return;
                    }
                    else
                    {
                        Goods_UnitSoldIntrapolate = Convert.ToInt32(rows[0]["Outgoing_Sold"] ?? 0) - Convert.ToInt32(rows[0]["Incomming_Sold"] ?? 0);
                        if (Goods_UnitSoldIntrapolate == 0)
                        {
                            Hasan.CMessageBox.ShowBox("There is no net sales till this date, there could not be sales return as well", (int)Hasan.CMessageBox.Type.Error);
                            Save.Enabled = true;
                            Cancel.Enabled = true;
                            return;
                        }
                    }
                }
                else
                {
                    Goods_UnitIntrapolate = GetGoodsUnit(rows);
                }
            }
           
            ds = ac.CheckGoodsAvailabilityExtrapolate(Date.Value.ToShortDateString(), Convert.ToInt32(combGoods.SelectedValue));
            rows = ds.Tables[0].Select();
            int Goods_UnitExtrapolate = GetGoodsUnit(rows);
            int Goods_UnitSoldExtrapolate = 0;


            #region sales
            if ((Transaction_Type_ID == 2 && Transaction_Status_ID == 2) ||
               (Transaction_Type_ID == 1 && Transaction_Status_ID == 4)
               )
            {
                if (rows.Length == 0 || rows[0]["Incomming_Current"].ToString().Length == 0)
                {
                    Goods_UnitSoldExtrapolate = 0;
                }
                else
                {
                    Goods_UnitSoldExtrapolate = Convert.ToInt32(rows[0]["Outgoing_Sold"]) - Convert.ToInt32(rows[0]["Incomming_Sold"]);
                }
            }
            #endregion

           if ( (Transaction_Type_ID == 2 && Transaction_Status_ID == 2) ||
               (Transaction_Type_ID == 1 && Transaction_Status_ID == 4)
               )
           {
               // incomming sold
               if (Transaction_Type_ID == 1 && Transaction_Status_ID == 4)
               {
                   if (Goods_UnitSoldIntrapolate < Convert.ToInt32(txtQuantity.Text))
                   {
                       Hasan.CMessageBox.ShowBox(" unit sold " + Goods_UnitSoldIntrapolate.ToString() + " and sales return is " + txtQuantity.Text + "  could not process it", (int)Hasan.CMessageBox.Type.Error);
                       Save.Enabled = true;
                       Cancel.Enabled = true;
                       return;
                   }

                   if (Goods_UnitSoldExtrapolate < Convert.ToInt32(txtQuantity.Text) && Goods_UnitSoldExtrapolate != 0)
                   {
                       Hasan.CMessageBox.ShowBox("There is " + combGoods.Text+ " transition in upcoming dates that show unavailable of desire stock", (int)Hasan.CMessageBox.Type.Error);
                       Save.Enabled = true;
                       Cancel.Enabled = true;
                       return;
                   }
               }
           }
           else
           {
               if (Transaction_Type_ID == 2)
               {
                   if ((Goods_UnitIntrapolate - Convert.ToInt32(txtQuantity.Text)) < 0)
                   {
                       Hasan.CMessageBox.ShowBox("Current stock level is " + Goods_UnitIntrapolate.ToString() + " could not process the request", (int)Hasan.CMessageBox.Type.Error);
                       Save.Enabled = true;
                       Cancel.Enabled = true;
                       return;
                   }

                   if (    ( Goods_UnitIntrapolate + Goods_UnitExtrapolate )  < Convert.ToInt32(txtQuantity.Text) && Goods_UnitExtrapolate != 0)
                   {
                       Hasan.CMessageBox.ShowBox("There is " + combGoods.Text + " transition in upcoming dates that show unavailable of desire stock", (int)Hasan.CMessageBox.Type.Error);
                       Save.Enabled = true;
                       Cancel.Enabled = true;
                       return;
                   }
               }
           }



           string str = "";

           float currentCost =  ac.GetCurrentCost(Convert.ToInt32(combGoods.SelectedValue),
               Is_Raw_Material,Date.Value.ToShortDateString());
            if( currentCost == 0 )
                currentCost = Convert.ToSingle(sUnit_Cost);

            if (Is_Job)
            {
                jobForm.dsTransaction.Tables["tblTransaction"].Rows.Add(new object[] { Convert.ToInt32(combGoods.SelectedValue),Is_Raw_Material, sDate, 0, Transaction_Status_ID, Transaction_Type_ID,Is_Job,0,
                    Convert.ToInt32(txtQuantity.Text),txtComments.Text,0,true,
                    (int)txtCost.Text_AsDouble, Convert.ToSingle(sUnit_Cost),currentCost});
                jobForm.ReloadGoods();

                if (Is_Raw_Material)
                {
                    str = Hasan.CMessageBoxContinueOk.ShowBox("Transition has been saved\n to continue press continue otherwise Done", (int)Hasan.CMessageBox.Type.Done);
                }
                else
                {
                    str = "Ok";
                }
            }
            else
            {
                ac.InsertTransaction(Convert.ToInt32(combGoods.SelectedValue), Is_Raw_Material, sDate,
                    1, Transaction_Status_ID, Transaction_Type_ID, Is_Job, Job_ID, 
                    Convert.ToInt32(txtQuantity.Text), txtComments.Text, 0, true,
                    (int)txtCost.Text_AsDouble, Convert.ToSingle(sUnit_Cost), currentCost);
                str = Hasan.CMessageBoxContinueOk.ShowBox("Transition has been saved\n to continue press continue otherwise Done", (int)Hasan.CMessageBox.Type.Done); 
            }

            if (str == "Continue")
            {
                Transaction_Load(new object(), new EventArgs());
                ResetForm();
                Save.Enabled = true;
                Cancel.Enabled = true;
                return;
            }
            else
            {
                //mainFrom.Load_Click(new object(), new EventArgs());
                this.Close();
            }
        }


        void ResetForm()
        {
            combGoods.SelectedIndex = 0;
            txtQuantity.Text = "0";
            txtCost.Text = string.Format("{0:c}",0);
            lblUnit.Text = "Qty.";
            lblPerUnitCost.Text = "per/unit cost";
            //Date.Value = DateTime.Now;
            //Time.Value = DateTime.Now;
            txtComments.Text = "";
        }




        private void Cancel_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void Transaction_Load(object sender, EventArgs e)
        {

   
            if (Is_Raw_Material)
            {
                lblFinishedGoodsfLabel1.Visible = false;
                lblFinishedGoodsLabel2.Visible = false;
                lblRawMaterialLabel.Visible = true;

                // Expected Raw Material
                if (Transaction_Type_ID == 1 && Transaction_Status_ID == 2)
                {
                    Header.Text = "Raw Material in transit";
                    Job_ID = 0;
                    Is_Job = false;
                    Header.BackColor = Color.Orange;
                    Header.ForeColor = Color.White;
                    this.BackColor = Color.Orange;
                }

                // Receiving Raw Material
                if (Transaction_Type_ID == 1 && Transaction_Status_ID == 1)
                {
                    Header.Text = "Raw Material Stock received";
                    Job_ID = 0;
                    Is_Job = false;
                    Header.BackColor = Color.Green;
                    Header.ForeColor = Color.White;
                    this.BackColor = Color.Green;

                }

                // Reserved Raw Material
                if (Transaction_Type_ID == 2 && Transaction_Status_ID == 2)
                {
                    Header.Text = "Reserve stock for Pending Phase";
                    Is_Job = true;
                    Header.BackColor = Color.DarkBlue;
                    Header.ForeColor = Color.White;
                    this.BackColor = Color.DarkBlue;
                }

                // In Process Raw Material
                if (Transaction_Type_ID == 2 && Transaction_Status_ID == 3)
                {
                    Header.Text = "Dispatch Stock for manufactureing Phase";
                    Is_Job = true;
                    Header.BackColor = Color.Yellow;
                    Header.ForeColor = Color.Black;
                    this.BackColor = Color.Yellow;
                }

                // Finished Raw Material
                if (Transaction_Type_ID == 2 && Transaction_Status_ID == 5)
                {
                    Header.Text = "Raw Material Consumed to Produce finished goods";
                    Is_Job = true;
                    Header.BackColor = Color.Black;
                    Header.ForeColor = Color.White;
                    this.BackColor = Color.Black;
                }

                // Wasted Raw Material
                if (Transaction_Type_ID == 2 && Transaction_Status_ID == 6)
                {
                    Header.Text = "Dispatch Wasted Raw Material";
                    Job_ID = 0;
                    Is_Job = false;
                    Header.BackColor = Color.Red;
                    Header.ForeColor = Color.White;
                    this.BackColor = Color.Red;
                }
            }
            else
            {
                lblFinishedGoodsfLabel1.Visible = true;
                lblFinishedGoodsLabel2.Visible = true;
                lblRawMaterialLabel.Visible = false;

                // Expected Finished Product
                if (Transaction_Type_ID == 1 && Transaction_Status_ID == 2)
                {
                    Header.Text = "Finished Goods in transit";
                    Is_Job = true;
                    Header.BackColor = Color.Orange;
                    Header.ForeColor = Color.White;
                    this.BackColor = Color.Orange;
                }

                // Current Finished Product
                if (Transaction_Type_ID == 1 && Transaction_Status_ID == 1)
                {
                    Header.Text = "Current Stock";
                    Is_Job = true;
                    Header.BackColor = Color.Green;
                    Header.ForeColor = Color.White;
                    this.BackColor = Color.Green;
                }

                // In Process Finished Goods
                if (Transaction_Type_ID == 1 && Transaction_Status_ID == 3)
                {
                    Header.Text = "Finished Goods in production";
                    Is_Job = true;
                    Header.BackColor = Color.Yellow;
                    Header.ForeColor = Color.Black;
                    this.BackColor = Color.Yellow;
                }

                // Sales Return
                if (Transaction_Type_ID == 1 && Transaction_Status_ID == 4)
                {
                    Header.Text = "Sales Return";
                    Job_ID = 0;
                    Is_Job = false;
                    Header.BackColor = Color.DarkBlue;
                    Header.ForeColor = Color.White;
                    this.BackColor = Color.DarkBlue;
                }

                // Outgoing expected
                if (Transaction_Type_ID == 2 && Transaction_Status_ID == 2)
                {
                    Header.Text = "Finished Goods Reserve for Dispatch";
                    Job_ID = 0;
                    Is_Job = false;
                    Header.BackColor = Color.DimGray;
                    Header.ForeColor = Color.White;
                    this.BackColor = Color.DimGray;
                }

                


                // Sold Finished Product
                if (Transaction_Type_ID == 2 && Transaction_Status_ID == 4)
                {
                    Header.Text = "Finished Goods Dispatch for sale";
                    Job_ID = 0;
                    Is_Job = false;
                    Header.BackColor = Color.RoyalBlue;
                    Header.ForeColor = Color.White;
                    this.BackColor = Color.RoyalBlue;
                }

                // Wasted Finished Product
                if (Transaction_Type_ID == 2 && Transaction_Status_ID == 6)
                {
                    Header.Text = "Dispatch Wasted Finished Goods";
                    Job_ID = 0;
                    Is_Job = false;
                    Header.BackColor = Color.Red;
                    Header.ForeColor = Color.White;
                    this.BackColor = Color.Red;
                }
            }

            this.combGoods.SelectedIndexChanged += new System.EventHandler(this.combGoods_SelectedIndexChanged);
        }

        
        private void combGoods_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (Convert.ToInt32(combGoods.SelectedValue) != 0)
            {
                string unit_ID = MainForm.dsData.Tables["Goods"].Select("Goods_ID = " + combGoods.SelectedValue.ToString())[0]["Goods_Unit_ID"].ToString();
                lblUnit.Text = MainForm.dsData.Tables["Goods_Unit"].Select(" Goods_Unit_ID = " + unit_ID)[0]["Goods_Unit_Name"].ToString();  // 
                lblGoodsError.Visible = false;
            }
            else
            {
                lblGoodsError.Visible = true;
                combGoods.Focus();
            }
            Current_Stock();
        }

        private void txtQuantity_TextChanged(object sender, EventArgs e)
        {
            lblErrorQuantity.Visible = false;
            lblErrorCost.Visible = false;
            if (txtQuantity.Text.Trim().Length == 0)
                txtQuantity.Text = "0";
            lblPerUnitCost.Text = string.Format("{0:c}", Math.Round(txtCost.Text_AsDouble / Convert.ToInt32(txtQuantity.Text), 2)) + " per/" + lblUnit.Text;
        }

        public void CalculateCost()
        {
            string sUnit_Cost = lblPerUnitCost.Text.Replace("$", "").Replace(",", "");
            sUnit_Cost = sUnit_Cost.Remove(sUnit_Cost.IndexOf("per"));
            txtCost.Text = Convert.ToString(Convert.ToSingle(sUnit_Cost) * Convert.ToInt32(txtQuantity.Text));
        }

        private void txtComments_TextChanged(object sender, EventArgs e)
        {
            lblErrorComments.Visible = false;
        }

        private void Date_ValueChanged(object sender, EventArgs e)
        {
            Current_Stock();
        }

        private void btnCost_Click(object sender, EventArgs e)
        {
            ISCMS.Dialog.Rates dl = new Rates( Convert.ToInt32(combGoods.SelectedValue),this );
            dl.ShowDialog();
        }

        private void Transaction_KeyUp(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == System.Windows.Forms.Keys.Escape)
            {
                this.Close();
                return;
            }
        }
      
    }
}

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Software Developer
Pakistan Pakistan
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.
This is a Organisation

33 members

Comments and Discussions