//Add Target
 public static void Add(Quotation_Target target)
 {
     QuotationEntities entities = new QuotationEntities();
     entities.Quotation_Target.AddObject(target);
     entities.SaveChanges();
     Quotation_Controller.TargetChange((int)target.quotation_id);
 }
 public static Dictionary<int, string> GetAll_Quotation_Status()
 {
     QuotationEntities entities = new QuotationEntities();
     var result = from n in entities.Quotation_Status
                  select n;
     return result.ToDictionary(n => (Int32)n.Quotation_Status_Id, n => n.Quotation_Status_Name);
 }
    //List All Countries
    public static Dictionary<int, string> GetAllCountry(int TechnologyID)
    {
        QuotationEntities entities = new QuotationEntities();
        var result = (from n in entities.vw_Target
                      where n.Technology_id == TechnologyID
                      select new
                      {
                          n.country_id,
                          n.country_name
                      }).Distinct();

        return result.ToDictionary(n => n.country_id, n => n.country_name);
    }
    public static Dictionary<int, string> GetAll_Product_Type(int TechnologyID, int Country_ID)
    {
        QuotationEntities entities = new QuotationEntities();
        var result = (from n in entities.vw_Target
                      where n.Technology_id == TechnologyID && n.country_id == Country_ID
                      select new
                      {
                          n.product_type_id,
                          n.wowi_product_type_name
                      }).Distinct();

        return result.ToDictionary(n => n.product_type_id, n => n.wowi_product_type_name);
    }
    //Add Project
    public static void AddProject(Quotation_Version quot)
    {
        Project project = new Project();
        project.Project_No = DateTime.Now.ToString("yyyyMMdd-HHmmss");
        project.Quotation_Id = quot.Quotation_Version_Id;

        //Add by Adams 2012/4/23 for Project Requirment Change Requirment
        project.Quotation_No = quot.Quotation_No;

        project.Create_Date = DateTime.Now;
        project.Project_Status = "Open";

        QuotationEntities entities = new QuotationEntities();
        entities.Project.AddObject(project);
        entities.SaveChanges();
    }
 //Mark by Adams 2012/4/23 for Project Requirment Change Requirment
 //public static Project GetProject(int QuotationID)
 //{
 //    QuotationEntities entities = new QuotationEntities();
 //    var result = from n in entities.Project
 //                 where n.Quotation_Id == QuotationID
 //                 select n;
 //    return result.FirstOrDefault();
 //}
 //Add by Adams 2012/4/23 for Project Requirment Change Requirment
 public static Project GetProject(string QuotationNO)
 {
     QuotationEntities entities = new QuotationEntities();
       var result = from n in entities.Project
                where n.Quotation_No == QuotationNO
                select n;
       return result.FirstOrDefault();
 }
 public static String GetEmployeeAccessLevel(int employee_id)
 {
     QuotationEntities entities = new QuotationEntities();
     var result = from n in entities.m_employee_accesslevel
                  where n.employee_id == employee_id
                  select n.accesslevel_id;
     return "'" + String.Join("','", result) + "'";
 }
 public static employee GetEmployee(int EmployeeID)
 {
     QuotationEntities entities = new QuotationEntities();
     var result = from n in entities.employee
                  where n.id == EmployeeID
                  select n;
     return result.First();
 }
    public static employee GetEmployee(string username)
    {
        QuotationEntities entities = new QuotationEntities();
        var result = from n in entities.employee
                     where n.username == username
                     orderby n.q_authorize_amt

                     select n;
        return result.First();
    }
 public static string GetCountryName(int Country_ID)
 {
     QuotationEntities entities = new QuotationEntities();
     var result = from n in entities.country
                  where n.country_id == Country_ID
                  select n;
     if (result.Count() > 0)
         return result.First().country_name;
     else
         return "";
 }
 public static Quotation_Target Select(int Quotation_Target_Id)
 {
     QuotationEntities entities = new QuotationEntities();
     Quotation_Target target =
     entities.Quotation_Target.First
     (c => c.Quotation_Target_Id == Quotation_Target_Id);
     return target;
 }
 public static Dictionary<int, string> GetAll_Target(int country_id, int product_type_id, int authority_id, int wowi_tech_id)
 {
     //Modify by Adams 2012/4/28 for New Requirment use Target Rate
     QuotationEntities entities = new QuotationEntities();
     var result = from n in entities.Target_Rates
                  where n.country_id == country_id && n.product_type_id == product_type_id && n.authority_id == authority_id && n.Technology_id == wowi_tech_id
                  select n;
     return result.ToDictionary(n => n.Target_rate_id, n => n.authority_name);
 }
 public static void Delete(int Quotation_Target_Id)
 {
     QuotationEntities entities = new QuotationEntities();
     Quotation_Target target =
     entities.Quotation_Target.First
     (c => c.Quotation_Target_Id == Quotation_Target_Id);
     int quotation_id = 0;
     if (target != null)
     {
       quotation_id = (int)target.quotation_id;
     }
     entities.Quotation_Target.DeleteObject(target);
     entities.SaveChanges();
     Quotation_Controller.TargetChange(quotation_id);
 }
    public static Dictionary<int, string> GetAll_wowi_tech()
    {
        QuotationEntities entities = new QuotationEntities();
        var result = (from n in entities.vw_Target
                     select new
                     {
                         n.Technology_id,
                         n.wowi_tech_name
                     }).Distinct();

        return result.ToDictionary(n => n.Technology_id, n => n.wowi_tech_name);
    }
    public static void Copy(int New_Quotation_ID, int Old_Quotation_ID)
    {
        QuotationEntities entities = new QuotationEntities();
        IEnumerable<Quotation_Target> TargetList =
        entities.Quotation_Target.Where
        (c => c.quotation_id == Old_Quotation_ID);

        foreach (Quotation_Target item in TargetList)
        {
          entities.Detach(item);
          item.EntityKey = null;
          item.quotation_id = New_Quotation_ID;
          //Project Target Estimate Date 以下欄位資料不能複製至新Target
          item.Status = "Open";
          item.test_started = null;
          item.test_completed = null;
          item.certification_completed = null;
          item.certification_submit_to_authority = null;
          item.Estimated_Lead_time = string.Empty;
          item.Actual_Lead_time = string.Empty;
          item.Agent = 0;
          item.Country_Manager = 0;
          item.PR_Flag = string.Empty;
          item.Bill1 = null;
          item.Bill2 = null;
          item.Bill3 = null;
          item.BillE = null;

          //adams:2014/8/25
          item.document_ready_to_process = null;
          item.certificate_type = null;
          item.certificate_issue_date = null;
          item.certificate_expiry_date = null;
          item.email_renewal_notice_date = null;
          item.renewal_confirmation_check = "0";
          item.conduct_renewal_action_date = null;
          item.sample_received_from_client_date = null;
          item.customer_request_sample_returned = "0";
          item.sample_returned_to_client_date = null;
          item.sample_shipping_tracking_no = null;
          item.customer_request_original_certificate_returned = "0";
          item.original_certificate_mailed_to_client_date = null;
          item.Certificate_shipping_tracking_no = null;
          item.sample_can_be_returned_from_authority = "0";
          item.sample_is_kept_by_local_agent = false;
          item.request_local_agent_to_destroy_tested_samples = false;
          item.returned_of_tested_sample_date = null;
          item.CMB1 = false;
          item.CMB2 = false;
          item.CMB3 = false;
          item.CMB4 = false;
          item.CMB5 = false;
          item.CMB6 = false;
          item.CMB7 = false;
          item.CMB8 = false;
          item.original_certificate_received_date = null;
          item.Lifetime = false;

          Add(item);
        }
    }
    //List All Versions
    public static Dictionary<int, string> GetAllVersions(string Quotation_No)
    {
        //modify by Adams 2012/5/6 只有confirmed的報價單才會秀版本
        QuotationEntities entities = new QuotationEntities();
        var result = (from n in entities.Quotation_Version
                  where n.Quotation_No == Quotation_No
                  select new
                  {
                    n.Quotation_Version_Id,
                    n.Vername
                  }).Distinct();

        return result.ToDictionary(n => n.Quotation_Version_Id, n => "V" + n.Vername.ToString());
    }
 public static IEnumerable<vw_Test_Target_List> SelectView(string Quotation_No)
 {
     QuotationEntities entities = new QuotationEntities();
     IEnumerable<vw_Test_Target_List> TargetList =
     entities.vw_Test_Target_List.Where
     (c => c.Quotation_No == Quotation_No);
     return TargetList;
 }
 public static string GetTargetDescription(int AuthorityID)
 {
     QuotationEntities entities = new QuotationEntities();
       var result = from t in entities.Authority
                where t.authority_id == AuthorityID
                select t;
       string description = string.Empty;
       if (result!=null)
       {
     description = result.FirstOrDefault().Target_Description;
       }
       return description;
 }
 protected void dvWorkingStatus_DataBound(object sender, EventArgs e)
 {
     TextBox tmp = (TextBox)dvWorkingStatus.FindControl("txtLogDate");
     tmp.Text = System.DateTime.Now.ToShortDateString();
     Label lbl = (Label)dvWorkingStatus.FindControl("LabelCreateBy");
     lbl.Text = User.Identity.Name;
     Label date = (Label)dvWorkingStatus.FindControl("LabelCertificationDate");
     if (ddlWorkingStatusTarget.SelectedValue != "0")
     {
       int targetid = int.Parse(ddlWorkingStatusTarget.SelectedValue);
       QuotationModel.QuotationEntities dc = new QuotationModel.QuotationEntities();
       var result = (from t in dc.Quotation_Target
                 where t.Quotation_Target_Id == targetid
                 select new { t.certification_completed }).First().certification_completed;
       if (string.IsNullOrEmpty(result.ToString()))
       {
     date.Text = "N/A";
       }
       else
       {
     date.Text = result.Value.ToShortDateString();
       }
     }
 }
 public static clientapplicant GetClientApplicant(int ClientID)
 {
     QuotationEntities entities = new QuotationEntities();
     var result = from n in entities.clientapplicant
                  //join c in entities.country on n.country_id equals c.country_id
                  where n.id == ClientID
                  select n;
                  //select new { n, c.country_name };
     return result.First();
 }
    //Modify Test Target
    public static void Modify(Quotation_Target target)
    {
        QuotationEntities entities = new QuotationEntities();
        //entities.AcceptAllChanges();

        var result = (from n in entities.Quotation_Target
                  where n.Quotation_Target_Id == target.Quotation_Target_Id
                  select n).FirstOrDefault();

        result.target_id = target.target_id;
        result.target_description = target.target_description;
        result.country_id = target.country_id;
        result.product_type_id = target.product_type_id;
        result.authority_id = target.authority_id;
        result.technology_id = target.technology_id;
        result.target_rate = target.target_rate;
        result.unit = target.unit;
        result.unit_price = target.unit_price;
        result.discount_type = target.discount_type;
        result.discValue1 = target.discValue1;
        result.discValue2 = target.discValue2;
        result.discPrice = target.discPrice;
        result.FinalPrice = target.FinalPrice;
        result.PayTo = target.PayTo;
        result.Status = target.Status;
        result.Bill = target.Bill;
        result.option1 = target.option1;
        result.option2 = target.option2;
        result.advance1 = target.advance1;
        result.advance2 = target.advance2;
        result.balance1 = target.balance1;
        result.balance2 = target.balance2;
        result.PR_Flag = target.PR_Flag;
        result.Bill1 = target.Bill1;
        result.Bill2 = target.Bill2;
        result.Bill3 = target.Bill3;
        result.BillE = target.BillE;
        entities.SaveChanges();

        Quotation_Controller.TargetChange((int)result.quotation_id);
    }
 public static Dictionary<int, string> GetClientApplicantList(int employee_id)
 {
     QuotationEntities entities = new QuotationEntities();
     var result = from n in entities.m_employee_accesslevel
                  join c in entities.clientapplicant  on n.accesslevel_id equals c.department_id
                  where n.employee_id == employee_id &&
                       (c.clientapplicant_type == 1 || c.clientapplicant_type== 3)
                  orderby c.companyname
                  select c;
     return result.ToDictionary(n => n.id, n => n.companyname + " " + n.c_companyname);
 }
 public static contact_info Getcontact_info(int ContactID)
 {
     QuotationEntities entities = new QuotationEntities();
     var result = from n in entities.contact_info
                  where n.id == ContactID
                  select n;
     //select new { n, c.country_name };
     return result.First();
 }
    public static Dictionary<int, decimal> GetAll_Target_Rates( int wowi_tech_id, int Country_ID, int product_type_id, int authority_id)
    {
        //QuotationEntities entities = new QuotationEntities();
        //var result = from n in entities.Target_Rates
        //             where n.country_id == country_id && n.product_type_id == product_type_id && n.authority_name == authority_name && n.Technology_id == wowi_tech_id
        //             select n;
        //if (result.Count() > 0)
        //    return (decimal)result.First().rate;
        //else
        //    return 0;

        QuotationEntities entities = new QuotationEntities();
        var result = (from n in entities.vw_Target
                      where
                        n.Technology_id ==wowi_tech_id && n.country_id == Country_ID && n.product_type_id == product_type_id
                        && n.Publish == true
                      select new
                      {
                          n.Target_rate_id,
                          n.rate
                      }).Distinct();

        return result.ToDictionary(n => (int)n.Target_rate_id, n => (decimal)n.rate);
    }
    // Accordion 1
    protected void ddlWorkingStatusProject_SelectedIndexChanged(object sender, EventArgs e)
    {
        ddlWorkingStatusCountry.DataBind();
        ddlWorkingStatusTarget.DataBind();
        gvWorkingStatus.EditIndex = -1;
        gvWorkingStatus.DataBind();
        dvWorkingStatus.Visible = false;

        DropDownList ddl = sender as DropDownList;

        if (ddl.SelectedValue != "0")
        {
          int pid = int.Parse(ddl.SelectedValue);
          txtAction.Visible = true;
          SaveClientAction.Visible = true;
          QuotationModel.QuotationEntities dc = new QuotationModel.QuotationEntities();
          var project = (from p in dc.Project
                     where p.Project_Id == pid
                     select p).SingleOrDefault();
          if (project != null)
          {
        txtAction.Text = project.Client_Action;
        //PanelReport.Visible = true;
          }
        }
        else
        {
          txtAction.Visible = false;
          SaveClientAction.Visible = false;
          //PanelReport.Visible = false;
        }

        HFAccordionStatus.Value = "1";//控制accordion
    }