private int GetMatchingWorkDescription(SalesQuotationItem model, IDbConnection connection, IDbTransaction txn)
        {
            try
            {
                string query = @"SELECT
	                                    WorkDescriptionId
                                    FROM WorkDescription
                                    WHERE FreezerUnitId " + (model.FreezerUnitId == null ? "IS NULL" : "= @FreezerUnitId") + @"
	                                    AND BoxId "     + (model.BoxId == null ? "IS NULL" : "= @BoxId") + @"
                                        AND VehicleModelId = @VehicleModelId";
                return(connection.Query <int>(query, new
                {
                    BoxId = model.BoxId,
                    FreezerUnitId = model.FreezerUnitId,
                    VehicleModelId = model.VehicleModelId
                }, txn).First());
            }
            catch (InvalidOperationException)
            {
                //when there is no matching work description
                return(CreateMatchingWorkDescription(connection, txn, model));
            }
            catch (Exception)
            {
                throw;
            }
        }
        public int InsertSalesQuotationItem(SalesQuotationItem objSalesQuotationItem, IDbConnection connection, IDbTransaction trn)
        {
            try
            {
                objSalesQuotationItem.WorkDescriptionId = GetMatchingWorkDescription(objSalesQuotationItem, connection, trn);

                string sql = @"insert  into SalesQuotationItem(SalesQuotationId,SlNo,WorkDescriptionId,Remarks,PartNo,Quantity,Rate,Discount,Amount,OrganizationId,RateType) Values (@SalesQuotationId,@SlNo,@WorkDescriptionId,@Remarks,@PartNo,@Quantity,@Rate,@Discount,@Amount,@OrganizationId,@RateType);
                    SELECT CAST(SCOPE_IDENTITY() as int)";


                var id = connection.Query <int>(sql, objSalesQuotationItem, trn).Single();
                return(id);
            }
            catch (Exception)
            {
                throw;
            }
        }
Example #3
0
        public ActionResult Print(int Id)
        {
            ReportDocument rd = new ReportDocument();

            rd.Load(Path.Combine(Server.MapPath("~/Reports"), "SalesQuotation.rpt"));

            DataSet ds = new DataSet();

            ds.Tables.Add("Head");

            ds.Tables.Add("Items");

            //-------HEAD
            ds.Tables["Head"].Columns.Add("QuotationRefNo");
            ds.Tables["Head"].Columns.Add("QuotationDate");
            ds.Tables["Head"].Columns.Add("CustomerName");
            ds.Tables["Head"].Columns.Add("CustomerAddress");
            ds.Tables["Head"].Columns.Add("ContactPerson");
            ds.Tables["Head"].Columns.Add("SalesExecutive");
            ds.Tables["Head"].Columns.Add("PredictedClosingDate");
            ds.Tables["Head"].Columns.Add("QuotationValidToDate");
            ds.Tables["Head"].Columns.Add("ExpectedDeliveryDate");
            ds.Tables["Head"].Columns.Add("Remarks");
            ds.Tables["Head"].Columns.Add("PaymentTerms");
            ds.Tables["Head"].Columns.Add("SalesQuotationStatusName");
            ds.Tables["Head"].Columns.Add("QuotationStage");
            ds.Tables["Head"].Columns.Add("Competitors");
            ds.Tables["Head"].Columns.Add("DiscountRemarks");
            ds.Tables["Head"].Columns.Add("Discount");
            ds.Tables["Head"].Columns.Add("DoorNo");
            ds.Tables["Head"].Columns.Add("Street");
            ds.Tables["Head"].Columns.Add("State");
            ds.Tables["Head"].Columns.Add("CountryName");
            ds.Tables["Head"].Columns.Add("Zip");
            ds.Tables["Head"].Columns.Add("Fax");
            ds.Tables["Head"].Columns.Add("Email");
            ds.Tables["Head"].Columns.Add("Phone");
            ds.Tables["Head"].Columns.Add("CurrencyName");
            ds.Tables["Head"].Columns.Add("OrganizationName");
            ds.Tables["Head"].Columns.Add("Designation");
            ds.Tables["Head"].Columns.Add("Image1");
            ds.Tables["Head"].Columns.Add("UserName");
            // ds.Tables["Head"].Columns.Add("EmpDesignation");
            ds.Tables["Head"].Columns.Add("Sign");


            //-------DT
            ds.Tables["Items"].Columns.Add("WorkDescr");
            ds.Tables["Items"].Columns.Add("Quantity");
            ds.Tables["Items"].Columns.Add("Rate");
            ds.Tables["Items"].Columns.Add("UOM");
            ds.Tables["Items"].Columns.Add("Discount");
            ds.Tables["Items"].Columns.Add("Amount");
            ds.Tables["Items"].Columns.Add("TotalAmount");
            ds.Tables["Items"].Columns.Add("WorkDescription");


            SalesQuotationRepository repo = new SalesQuotationRepository();
            var Head = repo.GetSalesQuotationHD(Id, OrganizationId);

            DataRow dr = ds.Tables["Head"].NewRow();

            dr["QuotationRefNo"]       = Head.QuotationRefNo;
            dr["QuotationDate"]        = Head.QuotationDate.ToString("dd-MMM-yyyy");
            dr["CustomerName"]         = Head.CustomerName;
            dr["CustomerAddress"]      = Head.CustomerAddress;
            dr["ContactPerson"]        = Head.ContactPerson;
            dr["SalesExecutive"]       = Head.SalesExecutiveName;
            dr["PredictedClosingDate"] = Head.PredictedClosingDate;
            dr["QuotationValidToDate"] = Head.QuotationValidToDate.ToString("dd-MMM-yyyy");
            dr["ExpectedDeliveryDate"] = Head.ExpectedDeliveryDate;
            dr["Remarks"]                  = Head.Remarks;
            dr["PaymentTerms"]             = Head.PaymentTerms;
            dr["SalesQuotationStatusName"] = Head.SalesQuotationStatusName;
            dr["QuotationStage"]           = Head.QuotationStage;
            dr["Competitors"]              = Head.Competitors;
            dr["DiscountRemarks"]          = Head.DiscountRemarks;
            dr["Discount"]                 = Head.Discount;
            dr["DoorNo"]           = Head.DoorNo;
            dr["Street"]           = Head.Street;
            dr["State"]            = Head.State;
            dr["CountryName"]      = Head.CountryName;
            dr["Zip"]              = Head.Zip;
            dr["Fax"]              = Head.Fax;
            dr["Email"]            = Head.Email;
            dr["Phone"]            = Head.Phone;
            dr["CurrencyName"]     = Head.CurrencyName;
            dr["OrganizationName"] = Head.OrganizationName;
            dr["Designation"]      = Head.DesignationName;
            dr["Image1"]           = Server.MapPath("~/App_images/") + Head.Image1;
            dr["UserName"]         = Head.EmpNmae;
            //dr["EmpDesignation"] = Head.EmpDesignation;
            dr["Sign"] = Server.MapPath("~/App_images/") + Head.ApprovedUsersig;

            ds.Tables["Head"].Rows.Add(dr);

            SalesQuotationRepository repo1 = new SalesQuotationRepository();
            var Items = repo1.GetSalesQuotationItemsPrint(Id);

            foreach (var item in Items)
            {
                var pritem = new SalesQuotationItem
                {
                    WorkDescr       = item.WorkDescr,
                    Quantity        = item.Quantity,
                    Rate            = item.Rate,
                    UnitName        = item.UnitName,
                    Discount        = item.Discount,
                    Amount          = item.Amount,
                    WorkDescription = item.WorkDescription,
                    TotalAmount     = item.TotalAmount
                };


                DataRow dri = ds.Tables["Items"].NewRow();
                dri["WorkDescr"]       = pritem.WorkDescr;
                dri["Quantity"]        = pritem.Quantity;
                dri["Rate"]            = pritem.Rate;
                dri["Discount"]        = pritem.Discount;
                dri["Amount"]          = pritem.Amount;
                dri["UOM"]             = pritem.UnitName;
                dri["WorkDescription"] = pritem.WorkDescription;
                dri["TotalAmount"]     = pritem.TotalAmount;

                ds.Tables["Items"].Rows.Add(dri);
            }

            ds.WriteXml(Path.Combine(Server.MapPath("~/XML"), "SalesQuotation.xml"), XmlWriteMode.WriteSchema);

            rd.SetDataSource(ds);

            Response.Buffer = false;
            Response.ClearContent();
            Response.ClearHeaders();


            try
            {
                Stream stream = rd.ExportToStream(CrystalDecisions.Shared.ExportFormatType.WordForWindows);
                stream.Seek(0, SeekOrigin.Begin);
                return(File(stream, "application/ms-word", String.Format("SalesQuotation{0}.doc", Id.ToString())));
            }
            catch (Exception ex)
            {
                throw;
            }
        }
        private int CreateMatchingWorkDescription(IDbConnection connection, IDbTransaction txn, SalesQuotationItem model)
        {
            try
            {
                string freezerName = model.FreezerUnitId == null ? String.Empty : new ItemRepository().GetItem(model.FreezerUnitId ?? 0).ItemName,
                       boxName     = model.BoxId == null ? String.Empty : new ItemRepository().GetItem(model.BoxId ?? 0).ItemName,

                       ref_no = "WD/" + DatabaseCommonRepository.GetInternalIDFromDatabase(connection, txn, typeof(WorkDescription).Name, "0", 1),

                       query = @"INSERT INTO WorkDescription (WorkDescriptionRefNo, FreezerUnitId, BoxId, WorkDescr,
							        WorkDescrShortName, isNewInstallation, CreatedDate, OrganizationId, isActive,
							        isProjectBased, VehicleModelId)
                                VALUES
                                (
	                                @WorkDescriptionRefNo, @FreezerUnitId, @BoxId, @WorkDescr,
							        @WorkDescrShortName, @isNewInstallation, @CreatedDate, @OrganizationId, @isActive,
							        @isProjectBased, @VehicleModelId
                                )
                                SELECT CAST(SCOPE_IDENTITY() AS INT)";

                int?id = connection.Query <int>(query,
                                                new
                {
                    WorkDescriptionRefNo = ref_no,
                    FreezerUnitId        = model.FreezerUnitId,
                    BoxId              = model.BoxId,
                    WorkDescr          = freezerName + (freezerName == String.Empty || boxName == String.Empty ? String.Empty : " + ") + boxName,
                    WorkDescrShortName = freezerName + (freezerName == String.Empty || boxName == String.Empty ? String.Empty : " + ") + boxName,
                    isNewInstallation  = 1,
                    CreatedDate        = System.DateTime.Today,
                    OrganizationId     = model.OrganizationId,
                    isActive           = 1,
                    isProjectBased     = 0,
                    VehicleModelId     = model.VehicleModelId
                }, txn).FirstOrDefault();

                if (id == null)
                {
                    throw new Exception();
                }
                else
                {
                    return(id ?? 0);
                }
            }
            catch (Exception)
            {
                throw;
            }
        }