Exemple #1
0
        private void SetAeAndOP()
        {
            var employee = new FsEmployee(_sales);

            if (employee.Role == (int)EmployeeEN.NEmployeeRole.OP)
            {
                _sa1ID = _sales;
                _sales = employee.GetMyAeID(2);
            }
        }
Exemple #2
0
        public int GetValidation()
        {
            int val      = 12;
            var employee = new FsEmployee(_sales);

            if (employee.Role == Convert.ToInt32((object)EmployeeEN.NEmployeeRole.AE) |
                employee.Role == Convert.ToInt32((object)EmployeeEN.NEmployeeRole.OP))
            {
                val = GetExtraValidation();
            }

            return(val);
        }
        private void UpdateWorkOrder(int workOrderID, string woNumber, string woType, string paymentMethod, double?version, string rush, string rushReason,
                                     string remarks, DateTime?issueDate, DateTime?dueDate, string cloneType, enterprise.Work_Order__c preWONumber, string siteCheckPurpose, string siteCheckPurposeAsOther, string sfWorkOrderID, double?amount, double?reviseWOCount, enterprise.User accountExecutive)
        {
            try
            {
                var workOrder = _db.Sales_JobMasterList_WO.Where(x => x.woID == workOrderID).FirstOrDefault();
                if (workOrder != null)
                {
                    switch (woType)
                    {
                    case "Production":
                        workOrder.woType = 10;
                        break;

                    case "Service":
                        workOrder.woType = 20;
                        break;

                    case "Site Check":
                        workOrder.woType = 30;
                        break;

                    default:
                        break;
                    }

                    switch (paymentMethod)
                    {
                    case "C.O.D (Invoice Attached)":
                        workOrder.PayMethods = 10;
                        break;

                    case "Invoice Mail Out By Office":
                        workOrder.PayMethods = 20;
                        break;

                    case "Installers Give Invoice To Client":
                        workOrder.PayMethods = 30;
                        break;

                    case "No Charge-Other":
                        workOrder.PayMethods = 40;
                        break;

                    case "No Charge-Mistakes":
                        workOrder.PayMethods = 41;
                        break;

                    case "No Charge-Under Warranty":
                        workOrder.PayMethods = 42;
                        break;

                    case "No Charge-Company Give Out As Gift":
                        workOrder.PayMethods = 43;
                        break;

                    case "No Charge-Sample":
                        workOrder.PayMethods = 44;
                        break;

                    case "No Charge-For Company Internal Use":
                        workOrder.PayMethods = 45;
                        break;

                    case "Decide By Installer":
                        workOrder.PayMethods = 46;
                        break;

                    case "PJ":
                        workOrder.PayMethods = 50;
                        break;

                    default:
                        break;
                    }

                    if (version != null)
                    {
                        workOrder.woRev = Convert.ToByte(version);
                    }

                    switch (rush)
                    {
                    case "Yes":
                        workOrder.rush       = true;
                        workOrder.rushReason = rushReason;
                        break;

                    case "No":
                        workOrder.rush = false;
                        break;

                    default:
                        break;
                    }

                    workOrder.Remarks = remarks;

                    if (issueDate != null)
                    {
                        workOrder.issuedDate = (DateTime)issueDate;
                    }
                    if (dueDate != null)
                    {
                        workOrder.DeadLine = (DateTime)dueDate;
                    }

                    if (amount != null)
                    {
                        workOrder.WorkorderAmount = Convert.ToDouble(amount);
                    }

                    if (accountExecutive != null)
                    {
                        FsEmployee poEmployee = new FsEmployee(accountExecutive.CommunityNickname);
                        if (poEmployee.EmployeeNumber > 0)
                        {
                            workOrder.Sales = poEmployee.EmployeeNumber;
                        }
                    }

                    switch (cloneType)
                    {
                    case "Redo":
                        workOrder.rush = true;
                        workOrder.reDo = true;

                        if (reviseWOCount != null)
                        {
                            if (reviseWOCount > 0)
                            {
                                workOrder.revise    = true;
                                workOrder.reviseVer = Convert.ToInt16(reviseWOCount);
                            }
                            else
                            {
                                workOrder.revise    = false;
                                workOrder.reviseVer = null;
                            }
                        }
                        else
                        {
                            workOrder.revise    = false;
                            workOrder.reviseVer = null;
                        }

                        workOrder.RedoOfWoNumbers = preWONumber != null ? preWONumber.Work_Order_Number__c : "";
                        //workOrder.WorkorderNumber = woNumber;
                        if (version != null)
                        {
                            workOrder.redoVer = Convert.ToInt16(version);
                        }
                        break;

                    case "Revise":
                        workOrder.rush    = true;
                        workOrder.revise  = true;
                        workOrder.reDo    = false;
                        workOrder.redoVer = null;

                        workOrder.RedoOfWoNumbers = preWONumber != null ? preWONumber.Work_Order_Number__c : "";
                        //workOrder.WorkorderNumber = preWONumber != null ? preWONumber.Name : "";
                        if (version != null)
                        {
                            workOrder.reviseVer = Convert.ToInt16(version);
                        }
                        break;

                    case "New":
                        workOrder.revise          = false;
                        workOrder.reviseVer       = null;
                        workOrder.reDo            = false;
                        workOrder.redoVer         = null;
                        workOrder.RedoOfWoNumbers = "";
                        //workOrder.WorkorderNumber = woNumber;
                        break;

                    default:
                        break;
                    }

                    workOrder.WorkorderNumber = woNumber;

                    _db.Entry(workOrder).State = EntityState.Modified;
                    _db.SaveChanges();
                }

                if (woType == "Site Check")
                {
                    int siteCheckID = CommonMethods.GetMISID(TableName.WO_Sitecheck_Purpose, sfWorkOrderID, salesForceProjectID);
                    if (siteCheckID == 0)
                    {
                        InsertNewSiteCheckPurpose(workOrderID, siteCheckPurpose, siteCheckPurposeAsOther);
                        int newId = SqlCommon.GetNewlyInsertedRecordID(TableName.WO_Sitecheck_Purpose);
                        if (newId > 0)
                        {
                            CommonMethods.InsertToMISSalesForceMapping(TableName.WO_Sitecheck_Purpose, sfWorkOrderID, newId.ToString(), salesForceProjectID);
                        }
                    }
                    else
                    {
                        UpdateSiteCheckPurpose(siteCheckID, siteCheckPurpose, siteCheckPurposeAsOther);
                    }
                }
            }
            catch (Exception e)
            {
                LogMethods.Log.Error("UpdateWorkOrder:Error:" + e.Message);
            }
        }
Exemple #4
0
        public void GetAllProjects()
        {
            try
            {
                LogMethods.Log.Info("GetAllProjects:Info:" + "Start processing all projects");
                //create service client to call API endpoint
                using (enterprise.SoapClient queryClient = new enterprise.SoapClient("Soap", apiAddr))
                {
                    //create SQL query statement
                    string query = "SELECT Id, Project_Number__c, Name, CloseDate, Type, OwnerId, Owner.CommunityNickname, Bidding_Type__c, Bidding_Source__c, Product_Line__c, Middle_Updated_Flag__c, "
                                   + " Bidding_Due_Date__c, Bidding_Remark__c, Sync__c, Account_Executive__r.CommunityNickname, Project_Coordinator__r.CommunityNickname, "
                                   + " (SELECT Id, Name, Billing_Company_City__c, Billing_Contact_Name__r.Account.Id, Billing_Company_Name__r.Name, Billing_Company_Name__r.Id, Billing_Company_Postal_Code__c, Billing_Company_Province__c, Billing_Company_Street__c, Billing_Contact_Name__r.FirstName, Billing_Contact_Name__r.LastName, Billing_Contact_Name__r.Id, Billing_Contact_Phone__c, Billing_Company_Country__c, Quoting_Company_City__c, Quoting_Company_Name__r.Name, Quoting_Company_Name__r.Id,  Quoting_Contact_Name__r.Account.Id, Quoting_Company_Postal_Code__c, Quoting_Company_Province__c, Quoting_Company_Street__c, Quoting_Contact_Name__r.FirstName, Quoting_Contact_Name__r.LastName, Quoting_Contact_Name__r.Id, Quoting_Contact_Phone__c, Quoting_Company_Country__c,Installing_Company_City__c, Installing_Company_Name__r.Name, Installing_Company_Name__r.Id, Installing_Contact_Name__r.Account.Id, Installing_Company_Postal_Code__c, Installing_Company_Province__c, Installing_Company_Street__c, Installing_Contact_Name__r.FirstName, Installing_Contact_Name__r.LastName, Installing_Contact_Name__r.Id, Installing_Contact_Phone__c, Installing_Company_Country__c, Billing_Account_Intersection__c, Billing_Account_Corner__c, Installing_Account_Intersection__c,Installing_Account_Corner__c,Quoting_Account_Intersection__c,Quoting_Account_Corner__c,Billing_Company_Name__r.Legal_Name__c  FROM Bill_Quote_Ships__r), "
                                   + " (SELECT Id, Number_of_Signs__c, Project_Value_Estimated__c,  Remarks__c, Issue_Date__c, Due_Date__c, LandLord__r.Name, LandLord_Contact__r.Name, LandLord_Phone_Number__c, LandLord__r.BillingStreet, LandLord__r.BillingCity, LandLord__r.BillingState, LandLord__r.BillingPostalCode FROM Sign_Permits__r),"
                                   + " (SELECT Id, Occupation_Start_Time__c, Occupation_End_Time__c, Issue_Date__c, Type_Of_Truck__c, Truck_Weight__c, Foreman_Name__r.Name, Foreman_Phone__c, Remarks__c FROM Hoisting_Permits__r),"
                                   + " (SELECT Id, Stick_Position_Radius__c, Dept_Of_Holes__c, Issue_Date__c, Due_Date__c, Remarks__c FROM StakeOut_Permits__r),"
                                   + " (SELECT Id, Name, First_Site_Contact__c, Second_Site_Contact__c, Budget__c, Provided_By__c,  Remarks__c, Due_Date__c, Rush__c, Requirement__c, Requirement_As_Other__c, Estimated_Shipping_Cost__c, Shipping_Items_Total_Value__c, Work_Order_Number__c  FROM SubContracts__r) "
                                   + " FROM Opportunity "
                                   + " WHERE Sync__c = true and Middle_Updated_Flag__c = 1 ";
                    //+ " WHERE name= '2131 Yonge Street - Exterior and Interior Signage Program'";



                    enterprise.QueryResult result;
                    queryClient.query(
                        header, //sessionheader
                        null,   //queryoptions
                        null,   //mruheader
                        null,   //packageversion
                        query, out result);

                    /* if no any record, return */
                    if (result.size == 0)
                    {
                        return;
                    }

                    //cast query results
                    IEnumerable <enterprise.Opportunity> opportunityList = result.records.Cast <enterprise.Opportunity>();

                    /*
                     * enterprise.Opportunity[] opp = new enterprise.Opportunity[result.size];
                     * int i = 0;
                     * foreach (var opportunity in opportunityList)
                     * {
                     *  enterprise.Opportunity temp = new enterprise.Opportunity();
                     *  temp.Id = opportunity.Id;
                     *  temp.Middle_Updated_Flag__c = 0;
                     *  temp.Middle_Updated_Flag__cSpecified = true;
                     *  opp[i] = temp;
                     *  i++;
                     * }
                     * enterprise.LimitInfo[] l1;
                     * enterprise.SaveResult[] s1;
                     * queryClient.update(header, null, null, null, null, null, null, null, null, null, null, null, null, opp, out l1, out s1);
                     * */

                    int size = result.size;
                    int j    = 1;
                    int k    = 0;
                    while (j <= size)
                    {
                        int limitArray = (size > 150) ? 150 : size;
                        size -= limitArray;

                        enterprise.Opportunity[] opp = new enterprise.Opportunity[limitArray];
                        int i = 0;
                        for (int m = k; m < k + limitArray; m++)
                        {
                            enterprise.Opportunity temp = new enterprise.Opportunity();
                            temp.Id = opportunityList.ElementAt(m).Id;
                            temp.Middle_Updated_Flag__c          = 0;
                            temp.Middle_Updated_Flag__cSpecified = true;
                            opp[i] = temp;
                            i++;
                        }
                        k += limitArray;
                        enterprise.LimitInfo[]  l1;
                        enterprise.SaveResult[] s1;
                        queryClient.update(header, null, null, null, null, null, null, null, null, null, null, null, null, opp, out l1, out s1);
                    }

                    //show results
                    foreach (var opportunity in opportunityList)
                    {
                        /* get project owner */
                        //string un = CommonMethods.GetUserName(opportunity.OwnerId);
                        string     un         = (opportunity.Owner.CommunityNickname == null ? "" : opportunity.Owner.CommunityNickname);
                        FsEmployee fsEmployee = new FsEmployee(un);
                        if (fsEmployee.EmployeeNumber > 0)
                        {
                            LogMethods.Log.Info("GetAllProjects:Info:" + "Processing project name:" + opportunity.Name);
                            int sales_JobMasterListID = CommonMethods.GetMISID(TableName.Sales_JobMasterList, opportunity.Id, opportunity.Id);
                            if (sales_JobMasterListID == 0)
                            {
                                int jobID = CreateNewProject(fsEmployee.EmployeeNumber);

                                /* insert data to MISSalesForceMapping */
                                if (jobID > 0)
                                {
                                    UpdateProject(jobID, opportunity.CloseDate, fsEmployee.EmployeeNumber, opportunity.Name, opportunity.Type, opportunity.Account_Executive__r, opportunity.Product_Line__c, opportunity.Project_Coordinator__r);
                                    /* update jobnumber */
                                    UpdateJobNumber(jobID, opportunity.Project_Number__c);

                                    CommonMethods.InsertToMISSalesForceMapping(TableName.Sales_JobMasterList, opportunity.Id, jobID.ToString(), opportunity.Id);
                                }
                                else
                                {
                                    LogMethods.Log.Error("GetAllProjects:Error:" + "Cannot create a new project!");
                                    continue;
                                }
                                sales_JobMasterListID = jobID;
                            }
                            else
                            {
                                UpdateProject(sales_JobMasterListID, opportunity.CloseDate, fsEmployee.EmployeeNumber, opportunity.Name, opportunity.Type, opportunity.Account_Executive__r, opportunity.Product_Line__c, opportunity.Project_Coordinator__r);
                            }

                            /* for bidding project */
                            if (opportunity.Type == SalesType.Bid)
                            {
                                /* check if the bidding record exists */
                                int biddingID = GetBiddingID(sales_JobMasterListID);
                                if (biddingID > 0)
                                {
                                    //exist
                                    UpdateBiddingProject(biddingID, sales_JobMasterListID, opportunity.Bidding_Type__c, opportunity.Bidding_Source__c, opportunity.Bidding_Due_Date__c, opportunity.Bidding_Remark__c);
                                }
                                else
                                {
                                    InsertBiddingProject(fsEmployee.EmployeeNumber);
                                    UpdateBiddingProject(SqlCommon.GetNewlyInsertedRecordID("Sales_JobMaster_BiddingJob"), Convert.ToInt32(sales_JobMasterListID), opportunity.Bidding_Type__c, opportunity.Bidding_Source__c, opportunity.Bidding_Due_Date__c, opportunity.Bidding_Remark__c);
                                }
                            }

                            /* Bill-Quote-Ship */
                            LogMethods.Log.Debug("GetAllProjects:Debug:" + "Processing account and contact");
                            CustomerMethods cm = new CustomerMethods(opportunity.Id);
                            cm.GetAllAccounts(opportunity.Id, sales_JobMasterListID, fsEmployee.EmployeeNumber, opportunity.Bill_Quote_Ships__r);

                            /* Estimation */
                            LogMethods.Log.Debug("GetAllProjects:Debug:" + "Processing estimation");
                            EstimationMethods em = new EstimationMethods(opportunity.Id);
                            int estRevID         = CommonMethods.GetEstRevID(sales_JobMasterListID);
                            em.GetEstimation(opportunity.Id, estRevID, sales_JobMasterListID, fsEmployee.EmployeeNumber);

                            /*Drawing */
                            LogMethods.Log.Debug("GetAllProjects:Debug:" + "Processing drawing");
                            DrawingMethods dm = new DrawingMethods(opportunity.Id);
                            dm.GetAllDrawings(opportunity.Id, estRevID, sales_JobMasterListID, fsEmployee.EmployeeNumber);

                            /* Quote */
                            LogMethods.Log.Debug("GetAllProjects:Debug:" + "Processing quote");
                            QuoteMethods qm = new QuoteMethods(opportunity.Id);
                            qm.GetAllQuotes(opportunity.Id, sales_JobMasterListID, estRevID, fsEmployee.EmployeeNumber);

                            /* Sign/Hoisting/Stakeout permit */
                            PermitMethods pm = new PermitMethods(opportunity.Id);
                            LogMethods.Log.Debug("GetAllProjects:Debug:" + "Processing sign permit");
                            pm.GetAllSignPermits(opportunity.Id, sales_JobMasterListID, fsEmployee.EmployeeNumber, opportunity.Sign_Permits__r);
                            LogMethods.Log.Debug("GetAllProjects:Debug:" + "Processing hoisting permit");
                            pm.GetAllHoistingPermits(opportunity.Id, sales_JobMasterListID, fsEmployee.EmployeeNumber, opportunity.Hoisting_Permits__r);
                            LogMethods.Log.Debug("GetAllProjects:Debug:" + "Processing stakeout permit");
                            pm.GetAllStakeOutPermits(opportunity.Id, sales_JobMasterListID, fsEmployee.EmployeeNumber, opportunity.StakeOut_Permits__r);

                            /* WorkOrder */
                            LogMethods.Log.Debug("GetAllProjects:Debug:" + "Processing work order");
                            WorkOrderMethods wo = new WorkOrderMethods(opportunity.Id);
                            wo.GetAllWorkOrders(opportunity.Id, sales_JobMasterListID, estRevID, fsEmployee.EmployeeNumber);

                            /* Sub-Contract */
                            LogMethods.Log.Debug("GetAllProjects:Debug:" + "Processing SubContract");
                            SubContractMethods sc = new SubContractMethods(opportunity.Id);
                            sc.GetAllSubContracts(opportunity.Id, sales_JobMasterListID, fsEmployee.EmployeeNumber, opportunity.SubContracts__r);

                            /* Invoice */
                            LogMethods.Log.Debug("GetAllProjects:Debug:" + "Processing invoice");
                            InvoiceMethods im = new InvoiceMethods(opportunity.Id);
                            im.GetAllInvoices(opportunity.Id, sales_JobMasterListID, estRevID, fsEmployee.EmployeeNumber);

                            LogMethods.Log.Info("GetAllProjects:Info:" + "Done: " + opportunity.Name + "<Project Num:" + opportunity.Project_Number__c + ">");
                        }
                        else
                        {
                            LogMethods.Log.Error("GetAllProjects:Error:" + "User Name: " + un + " does not exist in database");
                        }
                    }
                    LogMethods.Log.Info("GetAllProjects:Info:" + "All projects are done");
                }
            }
            catch (Exception e)
            {
                LogMethods.Log.Error("GetAllProjects:Error:" + e.Message);
            }
        }
Exemple #5
0
        /// <summary>
        /// Edit a project
        /// </summary>
        private void UpdateProject(int jobID, DateTime?targetDate, int sales, string jobTitle, string salesType, enterprise.User AE, string productLine, enterprise.User projectCoordinatorName)
        {
            using (var Connection = new SqlConnection(MISServiceConfiguration.ConnectionString))
            {
                string UpdateString  = "UPDATE Sales_JobMasterList SET targetDate = @targetDate, sales = @sales, jobTitle = @jobTitle, salesType = @salesType, isBidToProject = @isBidToProject, AETM = @AETM, ProductLine = @ProductLine, sa1ID = @sa1ID WHERE (jobID = @jobID)";
                var    UpdateCommand = new SqlCommand(UpdateString, Connection);
                if (targetDate != null)
                {
                    UpdateCommand.Parameters.Add("@targetDate", SqlDbType.DateTime).Value = targetDate;
                }
                else
                {
                    UpdateCommand.Parameters.Add("@targetDate", SqlDbType.DateTime).Value = DBNull.Value;
                }

                switch (salesType)
                {
                case SalesType.Repeat:
                    UpdateCommand.Parameters.AddWithValue("@salesType", 0);
                    UpdateCommand.Parameters.AddWithValue("@isBidToProject", 0);
                    break;

                case SalesType.Bid:
                    UpdateCommand.Parameters.AddWithValue("@salesType", 2);
                    UpdateCommand.Parameters.AddWithValue("@isBidToProject", 1);
                    break;

                default:
                    UpdateCommand.Parameters.AddWithValue("@salesType", 1);
                    UpdateCommand.Parameters.AddWithValue("@isBidToProject", 0);
                    break;
                }

                UpdateCommand.Parameters.Add("@jobTitle", SqlDbType.VarChar, 150).Value = jobTitle;
                UpdateCommand.Parameters.Add("@jobID", SqlDbType.Int).Value             = jobID;

                if (AE != null)
                {
                    //string un = CommonMethods.GetUserName(AE.Id);
                    string     un         = AE.CommunityNickname == null ? "" :  AE.CommunityNickname;
                    FsEmployee fsEmployee = new FsEmployee(un);
                    if (fsEmployee.EmployeeNumber > 0)
                    {
                        UpdateCommand.Parameters.AddWithValue("@AETM", fsEmployee.EmployeeNumber);
                        UpdateCommand.Parameters.Add("@sales", SqlDbType.Int).Value = fsEmployee.EmployeeNumber;
                    }
                    else
                    {
                        LogMethods.Log.Error("UpdateProject:Error:" + "User Name: " + un + " does not exist in database");
                        UpdateCommand.Parameters.AddWithValue("@AETM", 0);
                        UpdateCommand.Parameters.Add("@sales", SqlDbType.Int).Value = sales;
                    }
                }
                else
                {
                    UpdateCommand.Parameters.AddWithValue("@AETM", 0);
                    UpdateCommand.Parameters.Add("@sales", SqlDbType.Int).Value = sales;
                }

                if (productLine != null)
                {
                    switch (productLine)
                    {
                    case "Signage":
                        UpdateCommand.Parameters.AddWithValue("@ProductLine", 1);
                        break;

                    default:
                        UpdateCommand.Parameters.AddWithValue("@ProductLine", 10);
                        break;
                    }
                }
                else
                {
                    UpdateCommand.Parameters.AddWithValue("@ProductLine", 1);
                }

                string     op         = (projectCoordinatorName == null ? "" : projectCoordinatorName.CommunityNickname);
                FsEmployee poEmployee = new FsEmployee(op);
                if (projectCoordinatorName != null && poEmployee.EmployeeNumber > 0)
                {
                    UpdateCommand.Parameters.AddWithValue("@sa1ID", poEmployee.EmployeeNumber);
                }
                else
                {
                    UpdateCommand.Parameters.AddWithValue("@sa1ID", 110);
                }

                try
                {
                    Connection.Open();
                    UpdateCommand.ExecuteNonQuery();
                    LogMethods.Log.Debug("UpdateProject:Debug:" + "Done");
                }
                catch (SqlException ex)
                {
                    LogMethods.Log.Error("UpdateProject:Error:" + ex.Message);
                }
                finally
                {
                    Connection.Close();
                }
            }
        }
        public void ImportAddressFromCustomer(string importCustomerType)
        {
            //Subcontract-->Project-->IsInstallTo->Contact and Customer
            var workorder = new MyWorkorder(Value.WoID);
            var msc       = new MySalesJobMasterListCustomer(workorder.Value.jobID);

            if (importCustomerType == "InstallTo")
            {
                msc.SetInstallTo();
            }

            if (importCustomerType == "QuoteTo")
            {
                msc.SetQuoteTo();
            }

            if (importCustomerType == "BillTo")
            {
                msc.SetBillTo();
            }

            var mc = new MyCustomer(msc.CustomerID);

            _customer = mc.Value;
            var mcc = new MyCustomerContact(msc.ContactID);

            _contact = mcc.Value;


            if (_customer != null)
            {
                string addr = _customer.ADDR_1;
                if (!Convert.IsDBNull(_customer.ADDR_2))
                {
                    addr = addr + " " + _customer.ADDR_2;
                }

                Value.Address = addr;

                Value.City       = _customer.CITY;
                Value.Postcode   = _customer.ZIPCODE;
                Value.Province   = _customer.STATE;
                Value.ShipToName = _customer.NAME;

                string attenName = MyConvert.ConvertToString(_contact.CONTACT_HONORIFIC) + " ";
                attenName += MyConvert.ConvertToString(_contact.CONTACT_FIRST_NAME) + " ";
                attenName += MyConvert.ConvertToString(_contact.CONTACT_LAST_NAME);

                Value.AttnName  = attenName.Trim();
                Value.AttnPhone = MyConvert.ConvertToString(_contact.CONTACT_PHONE);


                //For Delivery Note

                Value.DeliveryDate = DateTime.Today;

                Value.WorkorderNumber = workorder.Value.WorkorderNumber;


                var emp = new FsEmployee(Convert.ToInt32(workorder.Value.Sales));

                Value.AeName  = emp.NickName;
                Value.AePhone = emp.GetCompanyPhoneExtension();


                Value.InvoiceNumber = workorder.GetInvoices();

                Value.NoteTypeID = 0;


                _db.Entry(Value).State = EntityState.Modified;
                _db.SaveChanges();

                Result = "ok";
            }
            else
            {
                Result = "Could not find the specified Customer.";
            }
        }
        private void UpdateInvoice(int invoiceID, string invoiceNumber, DateTime?issueDate, int sale, string term, string contractNo,
                                   string shipMethod, DateTime?contractDate, string taxOption, double?tax, double?deposit, double?discount, string invoiceType, string workOrderList, string currency, enterprise.User accountExecutive, enterprise.User projectCoordinator, enterprise.Quotation__c po, string suffix, double?version, String status, double?subTotal)
        {
            try
            {
                var invoice = _db.Sales_JobMasterList_Invoice.Where(x => x.invoiceID == invoiceID).FirstOrDefault();
                if (invoice != null)
                {
                    invoice.invoiceNo = invoiceNumber;
                    if (issueDate != null)
                    {
                        invoice.invoiceDate = issueDate;
                    }
                    invoice.Sales = sale;

                    if (currency != null)
                    {
                        invoice.Currency = currency;
                    }

                    if (suffix != null)
                    {
                        invoice.NameSurfix = suffix;
                    }

                    if (version != null)
                    {
                        invoice.Revision = Convert.ToByte(version);
                    }

                    if (status != null)
                    {
                        if (status.Equals("Pending", StringComparison.OrdinalIgnoreCase))
                        {
                            invoice.iStatus = 2002;
                        }
                        else if (status.Equals("Rejected", StringComparison.OrdinalIgnoreCase))
                        {
                            invoice.iStatus = 2004;
                        }
                        else if (status.Equals("Approved", StringComparison.OrdinalIgnoreCase))
                        {
                            invoice.iStatus = 2003;
                        }
                        else
                        {
                            invoice.iStatus = 2001;
                        }
                    }
                    else
                    {
                        invoice.iStatus = 2001;
                    }


                    if (!string.IsNullOrEmpty(term))
                    {
                        switch (term)
                        {
                        case "Cash On Delivery":
                            invoice.Term = 0;
                            break;

                        case "Customer Net 7 Days":
                            invoice.Term = 7;
                            break;

                        case "Customer Net 10 Days":
                            invoice.Term = 10;
                            break;

                        case "Customer Net 15 Days":
                            invoice.Term = 15;
                            break;

                        case "Customer Net 20 Days":
                            invoice.Term = 20;
                            break;

                        case "Customer Net 30 Days":
                            invoice.Term = 30;
                            break;

                        case "Customer Net 45 Days":
                            invoice.Term = 45;
                            break;

                        case "Customer Net 60 Days":
                            invoice.Term = 60;
                            break;

                        case "Customer Net 180 Days":
                            invoice.Term = 180;
                            break;

                        case "Due Upon Receipt":
                            invoice.Term = 100;
                            break;

                        case "75 3WD":
                            invoice.Term = 200;
                            break;

                        default:
                            invoice.Term = 1000;
                            break;
                        }
                    }

                    invoice.ContractNo = contractNo;
                    if (!string.IsNullOrEmpty(shipMethod))
                    {
                        invoice.ShipVia = shipMethod;
                    }

                    if (contractDate != null)
                    {
                        invoice.contractDate = contractDate;
                    }

                    switch (taxOption)
                    {
                    case "HST":
                        invoice.TaxOption = (short)NTaxOption.HST;
                        break;

                    case "HST-BC":
                        invoice.TaxOption = (int)NTaxOption.HstBC;
                        break;

                    case "GST Only":
                        invoice.TaxOption = (int)NTaxOption.GstOnly;
                        break;

                    case "GST & PST":
                        invoice.TaxOption = (int)NTaxOption.GstAndPst;
                        break;

                    case "Manually":
                        invoice.TaxOption = (int)NTaxOption.Manually;
                        if (tax != null)
                        {
                            invoice.pstAmount = Convert.ToDecimal(tax);
                        }
                        break;

                    case "No Tax":
                        invoice.TaxOption = (int)NTaxOption.NoTax;
                        break;

                    default:
                        break;
                    }

                    if (deposit != null)
                    {
                        invoice.Deposit = Convert.ToDecimal(deposit);
                    }

                    if (discount != null)
                    {
                        invoice.Discount = (-1) * Convert.ToDecimal(discount);
                    }

                    if (invoiceType != null)
                    {
                        switch (invoiceType)
                        {
                        case "Regular":
                            invoice.invoiceType = 1;
                            break;

                        case "Proforma":
                            invoice.invoiceType = 2;
                            break;

                        default:
                            invoice.invoiceType = 3;
                            break;
                        }
                    }

                    if (accountExecutive != null)
                    {
                        FsEmployee poEmployee = new FsEmployee(accountExecutive.CommunityNickname);
                        if (poEmployee.EmployeeNumber > 0)
                        {
                            invoice.Sales = poEmployee.EmployeeNumber;
                        }
                    }

                    if (projectCoordinator != null)
                    {
                        FsEmployee poEmployee = new FsEmployee(projectCoordinator.CommunityNickname);
                        if (poEmployee.EmployeeNumber > 0)
                        {
                            invoice.SA1 = poEmployee.EmployeeNumber;
                        }
                    }

                    if (po != null && po.PO_No__c != null)
                    {
                        invoice.po = po.PO_No__c;
                    }
                    if (subTotal != null)
                    {
                        invoice.InvoiceAmount = Convert.ToDecimal(subTotal);
                    }
                    string workOrders = "";
                    if (!string.IsNullOrEmpty(workOrderList))
                    {
                        char[]   delimiters = new char[] { '\n', ' ', ',' };
                        string[] items      = workOrderList.Split(delimiters);
                        if (items.Length != 0)
                        {
                            workOrders = string.Join(",", items);
                        }
                    }
                    invoice.Workorders = workOrders;

                    _db.Entry(invoice).State = EntityState.Modified;
                    _db.SaveChanges();
                }
            }
            catch (Exception e)
            {
                LogMethods.Log.Error("UpdateInvoice:Error:" + e.Message);
            }
        }
Exemple #8
0
        private void UpdateQuote(int quoteRevID, double?subTotal, double?discountAmount, double?version, string taxOption, double?taxRate, string term, string currency, enterprise.User po)
        {
            try
            {
                var sales_JobMasterList_quoteRev = _db.Sales_JobMasterList_QuoteRev.Where(x => x.quoteRevID == quoteRevID).FirstOrDefault();
                if (sales_JobMasterList_quoteRev != null)
                {
                    if (discountAmount != null)
                    {
                        sales_JobMasterList_quoteRev.DiscountAmount = Convert.ToDecimal(discountAmount);
                    }

                    if (version != null)
                    {
                        sales_JobMasterList_quoteRev.quoteRev = Convert.ToByte(version);
                    }

                    if (currency != null)
                    {
                        sales_JobMasterList_quoteRev.Currency = currency;
                    }

                    //Updated by Victor Ng, Aug-30-2019
                    if (subTotal != null)
                    {
                        sales_JobMasterList_quoteRev.quoteAmount = Convert.ToDecimal(subTotal);
                    }
                    //

                    switch (taxOption)
                    {
                    case "HST":
                        sales_JobMasterList_quoteRev.TaxOption = (int)NTaxOption.HST;
                        break;

                    case "HST-BC":
                        sales_JobMasterList_quoteRev.TaxOption = (int)NTaxOption.HstBC;
                        break;

                    case "GST Only":
                        sales_JobMasterList_quoteRev.TaxOption = (int)NTaxOption.GstOnly;
                        break;

                    case "GST & PST":
                        sales_JobMasterList_quoteRev.TaxOption = (int)NTaxOption.GstAndPst;
                        break;

                    case "Manually":
                        sales_JobMasterList_quoteRev.TaxOption = (int)NTaxOption.Manually;
                        if (subTotal != null && discountAmount != null)
                        {
                            sales_JobMasterList_quoteRev.pstAmount = Convert.ToDecimal((subTotal - discountAmount) * Convert.ToInt16(taxRate) * 0.01);
                        }
                        break;

                    case "No Tax":
                        sales_JobMasterList_quoteRev.TaxOption = (int)NTaxOption.NoTax;
                        break;

                    default:
                        break;
                    }

                    if (!string.IsNullOrEmpty(term))
                    {
                        switch (term)
                        {
                        case "Cash On Delivery":
                            sales_JobMasterList_quoteRev.termBalance = 0;
                            break;

                        case "Customer Net 7 Days":
                            sales_JobMasterList_quoteRev.termBalance = 7;
                            break;

                        case "Customer Net 10 Days":
                            sales_JobMasterList_quoteRev.termBalance = 10;
                            break;

                        case "Customer Net 15 Days":
                            sales_JobMasterList_quoteRev.termBalance = 15;
                            break;

                        case "Customer Net 20 Days":
                            sales_JobMasterList_quoteRev.termBalance = 20;
                            break;

                        case "Customer Net 30 Days":
                            sales_JobMasterList_quoteRev.termBalance = 30;
                            break;

                        case "Customer Net 45 Days":
                            sales_JobMasterList_quoteRev.termBalance = 45;
                            break;

                        case "Customer Net 60 Days":
                            sales_JobMasterList_quoteRev.termBalance = 60;
                            break;

                        case "Customer Net 180 Days":
                            sales_JobMasterList_quoteRev.termBalance = 180;
                            break;

                        case "Due Upon Receipt":
                            sales_JobMasterList_quoteRev.termBalance = 100;
                            break;

                        case "75 3WD":
                            sales_JobMasterList_quoteRev.termBalance = 200;
                            break;

                        default:
                            sales_JobMasterList_quoteRev.termBalance = 1000;
                            break;
                        }
                    }

                    if (po != null)
                    {
                        FsEmployee poEmployee = new FsEmployee(po.CommunityNickname);
                        if (poEmployee.EmployeeNumber > 0)
                        {
                            sales_JobMasterList_quoteRev.sa1ID = poEmployee.EmployeeNumber;
                        }
                    }

                    _db.Entry(sales_JobMasterList_quoteRev).State = EntityState.Modified;
                    _db.SaveChanges();
                }
            }
            catch (Exception e)
            {
                LogMethods.Log.Error("UpdateQuote:Error:" + e.Message);
            }
        }