Saturday, 29 October 2016

Print with javascript

No comments
Javascript

function PrintLabel(jsonData) {  
    jsonData = JSON.parse(jsonData);
    var frame1 = document.createElement('iframe');
    frame1.name = "frame1";
    frame1.style.position = "absolute";
    frame1.style.top = "-1000000px";

    document.body.appendChild(frame1);

    var frameDoc = frame1.contentWindow ? frame1.contentWindow : frame1.contentDocument.document ? frame1.contentDocument.document : frame1.contentDocument;
    frameDoc.document.open();
    frameDoc.document.write('<html><head><title> &nbsp;</title><link href="../Content/Default.css" rel="stylesheet" />');
    frameDoc.document.write('</head><body>');
    for (var i = 0; i < jsonData.length; i++) {
        frameDoc.document.write("<div id='dvClient'><label style='font-family:\"Arial\"' id='pName'>" + jsonData[i].ClientName + "</label><div>");
        //frameDoc.document.write('</br>');
        frameDoc.document.write("<label style='font-family:\"Arial\"'>" + "Dr. " + jsonData[i].ProviderName + "</label>");
        frameDoc.document.write('</br>');
        frameDoc.document.write("<label style='font-family:\"Arial\"' id='patientPrint'>" + jsonData[i].PatientName + "  " + jsonData[i].PatientChart + "</label>");
        frameDoc.document.write('</br>');
        frameDoc.document.write("<label style='font-family:\"Arial\"'>" + jsonData[i].DrugName + "  " + jsonData[i].ShortOutDate + "</label>");
        frameDoc.document.write('</br>');
        frameDoc.document.write("<label style='font-family:\"Arial\"'>Qty: " + jsonData[i].outqty + " " + jsonData[i].UnitName + "  Lot: " + jsonData[i].lotno + " Exp: " + jsonData[i].ExpDate + "</label>");
        frameDoc.document.write('</br>');
        frameDoc.document.write("<label style='font-family:\"Arial\"'>" + jsonData[i].sig + "</label>");
        frameDoc.document.write('</br>');
        frameDoc.document.write("</br>");      
        frameDoc.document.write("<label style='font-family:\"Arial\"'>Caution:</label>");
        frameDoc.document.write('</br>');
        frameDoc.document.write("<div id='dvCaution'><label style='font-family:\"Arial\"'>Federal law prohibits </label></br>");
        frameDoc.document.write("<label style='font-family:\"Arial\"'>transfer of this drug to any </label></br>");
        frameDoc.document.write("<label style='font-family:\"Arial\"'>person other than patient </label></br>");
        frameDoc.document.write("<label style='font-family:\"Arial\"'>for whom prescribed.</label></br><div>");
        frameDoc.document.write("<br/>");
        frameDoc.document.write("<label style='font-family:\"Arial\"'>Call your doctor for medical</label></br>");
        frameDoc.document.write("<label style='font-family:\"Arial\"'>advice about drug side</label></br>");
        frameDoc.document.write("<label style='font-family:\"Arial\"'>you may report drug side effects</label></br>");
        frameDoc.document.write("<label style='font-family:\"Arial\"'>effects to the FDA at:</label></br>");
        frameDoc.document.write("<label style='font-family:\"Arial\"'>1-800-FDA-1088</label></br>");
        frameDoc.document.write("<br/>");
        frameDoc.document.write("<br/>");
    }
    frameDoc.document.write('</body></html>');
    frameDoc.document.close();
    setTimeout(function () {
        window.frames["frame1"].focus();
        window.frames["frame1"].print();
        document.body.removeChild(frame1);
    }, 500);
    return false;
}

CSS

/* A4 Landscape*/
@page {
    size: auto;
    margin: 0;

}

#pName {
    zoom: 1.5;
}

#dvClient {
    text-align: center;
}
#dvPatient {
    width: 2.20in;
    height: 1.25in;    
    background: white;    
}

read more

CRUD with AJX in mvc

No comments
Controller

      //View
        public ActionResult InstructionWord()
        {
            InstructionWordRel instructionWordRel = new InstructionWordRel();
            BindInstructionWordGrid(instructionWordRel);
            return View(instructionWordRel);
        }

      //Bind
        public void BindInstructionWordGrid(InstructionWordRel instructionWordRel)
        {
            int _currentPage = 1;
            string insWord = string.Empty;
            int PageSize = 5;

            if (!int.TryParse(Request.QueryString["pg"], out _currentPage))
            {
                _currentPage = 1;
            }
            if (!string.IsNullOrEmpty(Request.QueryString["InsWord"]))
            {
                insWord = Request.QueryString["InsWord"];
            }
            instructionWordRel.CurrentPage = _currentPage;
            var instructionWordRelRepository = uom.Repository<InstructionWordRelRepository>();
            var result = instructionWordRelRepository.ExecWithStoreProcedure("spViewSIG @PageSize,@CurrentPage,@InsWord",
                new SqlParameter("PageSize", SqlDbType.Int) { Value = PageSize },
                new SqlParameter("CurrentPage", SqlDbType.Int) { Value = _currentPage },
                new SqlParameter("InsWord", SqlDbType.NVarChar, 100) { Value = insWord }
                ).ToList();

            instructionWordRel.TotalRecordCount = (instructionWordRelRepository.ExecWithStoreProcedure("spCountSIG @InsWord",
               new SqlParameter("InsWord", SqlDbType.NVarChar, 50) { Value = insWord }
               ).FirstOrDefault().TotalRecordCount);

            int pageCount = instructionWordRel.TotalRecordCount / PageSize;
            pageCount = instructionWordRel.TotalRecordCount % PageSize > 0 ? pageCount + 1 : pageCount;
            instructionWordRel.TotalPageCount = pageCount;
            instructionWordRel.lstInstructionWordRel = result;
        }

       //Update - Insert
        [HttpPost]
        public ActionResult InstructionWord(InstructionWordRel instructionWordRel)
        {
            if (string.IsNullOrEmpty(instructionWordRel.InsWord) || Convert.ToInt32(instructionWordRel.EnumInsWord) == 0)
            {
                ModelState.AddModelError("Error", "Please provide valid input");
                goto Exit;
            }

            var instructionnWordRepository = uom.Repository<InstructionWordsRepository>();
            if (instructionWordRel.InsWordID > 0)
            {
                var instructionnWordDetails = instructionnWordRepository.Get(x => x.InsWordID == instructionWordRel.InsWordID);
                instructionnWordDetails.InsWord = instructionWordRel.InsWord;
                instructionnWordDetails.InsType = Convert.ToInt32(instructionWordRel.EnumInsWord);
                instructionnWordRepository.Attach(instructionnWordDetails);
                ViewBag.message = "Updated";
            }
            else
            {
                InstructionWords instructionWords = new InstructionWords();
                instructionWords.InsType = Convert.ToInt32(instructionWordRel.EnumInsWord);
                instructionWords.InsWord = instructionWordRel.InsWord;
                instructionnWordRepository.Add(instructionWords);              
                ViewBag.message = "Added";              
            }
            ModelState.Clear();
            instructionWordRel = new InstructionWordRel();
            Exit:
            BindInstructionWordGrid(instructionWordRel);
            return View(instructionWordRel);
        }

        //Edit
        public ActionResult EditInstructionWord(InstructionWordRel instructionWordRel)
        {
            var instructionnWordRepository = uom.Repository<InstructionWordsRepository>();
            var instructionData = instructionnWordRepository.Get(x => x.InsWordID == instructionWordRel.InsWordID);
            instructionWordRel.InsWord = instructionData.InsWord;
            instructionWordRel.InsType = instructionData.InsType;
            //instructionWordRel.InsType = unitData.unitid;
            BindInstructionWordGrid(instructionWordRel);
            return Json(instructionWordRel, JsonRequestBehavior.AllowGet);
        }

        //Delete
        [HttpPost]
        public ActionResult DeleteInstructionWord(InstructionWordRel instructionWordRel)
        {
            var instructionnWordRepository = uom.Repository<InstructionWordsRepository>();
            var drugData = instructionnWordRepository.Get(x => x.InsWordID== instructionWordRel.InsWordID);
            instructionnWordRepository.Delete(drugData);
            return Json("Deleted");
        }

CSHTML

    <div class="main-content">
        <div class="panel mb25">
            <div class="panel-heading border">
                View SIG
            </div>
            <div class="panel-body">
                <div class="row no-margin">
                    <div class="col-lg-12">
                        <div class="box">
                            <div class="box-body no-padding">
                                <div class="row col-md-9">
                                    <div class="form-group">
                                        <label class="control-label col-sm-1">
                                            SIG:
                                        </label>
                                        <div class="col-sm-3">
                                            <input type="text" id="sigSearch" class="form-control" />
                                        </div>
                                        <button class="btn btn-primary" id="btnSearch" onclick="SearchData('search');return false;">Search</button>
                                        <button class="btn btn-primary" id="btnReset" onclick="SearchData('reset');return false;">Reset</button>
                                    </div>
                                </div>
                                <div class="row col-sm-12">
                                    <table class="table">
                                        <tr>
                                            <th class="textLeft">
                                                SIG
                                            </th>
                                            <th></th>
                                        </tr>
                                        @foreach (var item in @Model.lstInstructionWordRel)
                                        {
                                            <tr>
                                                <td>@item.InsWord</td>
                                                <th class="col-md-1">
                                                    <a href="javascript:void(0)" onclick="EditInstruction(@item.InsWordID)"><i class="fa fa-pencil fa-fw" aria-hidden="true"></i></a>
                                                    <a href="javascript:void(0)" onclick="DeleteInstruction(@item.InsWordID)"><i class="fa fa-trash fa-fw" aria-hidden="true"></i></a>
                                                </th>
                                            </tr>
                                        }
                                    </table>
                                </div>
                            </div>
                            <div class="box-footer">
                                <ul class="pagination pagination-sm no-margin pull-right">
                                    @if (Model.CurrentPage > 1)
                                    {
                                        <li>
                                            <a href="?pg=@(Model.CurrentPage > 1 ? (Model.CurrentPage - 1) : Model.CurrentPage)&InsWord=@(Request.QueryString["InsWord"] != null ? Request.QueryString["InsWord"] : "")">&laquo;</a>
                                        </li>
                                    }
                                    else
                                    {
                                        <li class="disabled">
                                            <a href="javascript:void(0);">&laquo;</a>
                                        </li>
                                    }
                                    @if (Model.TotalPageCount > 0)
                                    {
                                        for (int i = (Model.CurrentPage > 3 ? (Model.CurrentPage - 2) : 1); i < (Model.CurrentPage > 3 ? (Model.CurrentPage) + 3 : 6); i++)
                                        {
                                            if (Model.TotalPageCount >= i)
                                            {
                                                <li class="@(i == (Model.CurrentPage) ? "active" : "")">
                                                    <a class="@(i == (Model.CurrentPage) ? "selected" : "")" href="?pg=@i&InsWord=@(Request.QueryString["InsWord"] != null ? Request.QueryString["InsWord"] : "")">@(i)</a>
                                                </li>
                                            }
                                        }
                                    }
                                    @if (Model.CurrentPage < Model.TotalPageCount)
                                    {
                                        <li>
                                            <a href="?pg=@(Model.TotalPageCount == Model.CurrentPage ? (Model.TotalPageCount).ToString() : (Model.CurrentPage + 1).ToString())&InsWord=@(Request.QueryString["InsWord"] != null ? Request.QueryString["InsWord"] : "")">&raquo;</a>
                                        </li>
                                    }
                                    else
                                    {
                                        <li class="disabled"><a href="javascript:void(0);">&raquo;</a></li>
                                    }
                                </ul>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
            <input type="hidden" id="hdnInsWordID" />
        </div>
    </div>
    <div class="main-content" style="padding-top:5px !important">
        <div class="panel mb25">
            <div class="panel-heading border">
                Create SIG
            </div>
            <div class="panel-body">
                @Html.Partial("PartialView/_InstructionWord")
            </div>
        </div>
    </div>
    <div class="modal" id="deleteModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
        <div class="modal-dialog">
            <div class="modal-content">
                <div class="modal-header">
                    <button aria-label="Close" data-dismiss="modal" class="close" type="button"><span aria-hidden="true">×</span></button>
                    <h4 class="modal-title">Delete Confirmation</h4>
                </div>
                <div class="modal-body">
                    <p>Are you sure you want to delete this InstructionWord?</p>
                </div>
                <div class="modal-footer">
                    <input id="hdAnAddressBookId" type="hidden" />
                    <button data-dismiss="modal" class="btn btn-default pull-left" type="button">Close</button>
                    <button class="btn btn-danger" type="button" onclick="ConfirmDeleteItem()">Delete</button>
                </div>
            </div>
            <!-- /.modal-content -->
        </div>
    </div>

    @section Scripts
    {
        <script type="text/javascript">
            $(document).ready(function () {
                //Show success message after data is inserted
                if ('@ViewBag.message' == "Added") {
                    toastr.success('Record added sucessfully', 'Success', { timeOut: 5000 });
                }
                else if ('@ViewBag.message' == "Updated") {
                    toastr.success('Record updated sucessfully', 'Success', { timeOut: 5000 });
                }
            });
            function EditInstruction(instructionId) {
                $.ajax({
                    type: "GET",
                    url: "@Url.Action("EditInstructionWord", "Master")",
                    data: { InsWordID: instructionId },
                    async: true,
                    contentType: "application/json; charset=utf-8",
                    dataType: "json",
                    success: function (responseData) {                      
                        $("#EnumInsWord").val(responseData.InsType);
                        $("#InsWord").val(responseData.InsWord);
                        $("#InsWordID").val(responseData.InsWordID);

                    },
                    error: function (e) {
                    }
                });
            }

            function ConfirmDeleteItem() {
                $.ajax({
                    type: "POST",
                    url: "@Url.Action("DeleteInstructionWord", "Master")?InsWordID=" + $('#hdnInsWordID').val(),
                    async: true,
                    contentType: "application/json; charset=utf-8",
                    dataType: "json",
                    success: function (responseData) {
                        window.location.href = window.location.href;
                    },
                    error: function (e) {
                    }
                });
            }

            function DeleteInstruction(InsWordID) {
                $('#deleteModal').modal('toggle');
                $('#deleteModal').modal('show');
                $('#hdnInsWordID').val(InsWordID);
            }
        </script>

    }

Partial View CSHTML

<div class="panel-body">
    <div class="row no-margin">
        <div class="col-lg-12">
            @if (ViewContext.ViewData.ModelState.ContainsKey("Error"))
            {
                <div class="alert alert-danger alert-dismissible dvErrorListServer" style="width: 50%">
                    <button type="button" class="close " data-dismiss="alert" aria-hidden="true" style="margin-right:15px!important">×</button>
                    @Html.ValidationSummary(false)
                </div>
            }
            <div class="col-md-12">
                <div class="form-group no-margin">
                    <label class="col-sm-2 control-label">SIG Type</label>
                    <div class="col-sm-4">
                        @Html.EnumDropDownListFor(x => x.EnumInsWord, "Type", new { tabindex = "1", @class = "form-control" })
                    </div>
                </div>

                <div class="form-group no-margin">
                    <label class="col-sm-2 control-label">SIG Name</label>
                    <div class="col-sm-4">
                        @Html.TextBoxFor(x => x.InsWord, new { maxlength = "50", tabindex = "1", @class = "form-control" })
                    </div>
                </div>
                <div class="form-group no-margin">
                    <label class="col-sm-2 control-label">&nbsp;</label>
                    <div class="col-sm-4">
                        <button class="btn btn-primary mr10" id="frmSubmit">Save</button>
                        <input type="button" class="btn btn-default mr10" id="frmCancel" value="Cancel">
                    </div>
                </div>
            </div>        
            @Html.HiddenFor(x => x.InsWordID)  
        </div>
    </div>

</div>

SQL

ALTER PROCEDURE [dbo].[spViewSIG]
(
@PageSize INT = NULL,
@CurrentPage INT,      
@InsWord VARCHAR(100)

)
AS
BEGIN

    DECLARE @Skip INT
    DECLARE @Take INT    
    DECLARE @SQL VARCHAR(MAX)


IF(LEN(@InsWord)=0)
BEGIN
 SET @InsWord=null
END
else
begin
SET @InsWord='%'+@InsWord+'%'
end

SET @Skip = (@CurrentPage - 1) * @PageSize
    SET @Take = @CurrentPage * @PageSize
 
 
    SELECT * FROM (SELECT ROW_NUMBER() OVER
( ORDER BY InsWordID desc) rownumber,*
from InstructionWords
where isnull(InsWord,'') like coalesce(@InsWord,InsWord,'')
) A
      WHERE A.RowNumber > @Skip AND A.RowNumber <= @Take  

END

Tools

//dropdown
- chosen-select

$('#dropdown').val(id).trigger("chosen:updated");
$(".chosen-select").chosen();

-toastr

toastr.options = {
                    "closeButton": false,
                    "debug": false,
                    "newestOnTop": false,
                    "progressBar": false,
                    "positionClass": "toast-top-right",
                    "preventDuplicates": true,
                    "onclick": null,
                    "showDuration": "300",
                    "hideDuration": "1000",
                    "timeOut": 0,
                    "extendedTimeOut": 0,
                    "showEasing": "swing",
                    "hideEasing": "linear",
                    "showMethod": "fadeIn",
                    "hideMethod": "fadeOut",
                    "tapToDismiss": true
                }

toastr.warning('session expire , please select again', 'Warning', { timeOut: 5000 });

toastr.error('expired', 'Warning', { timeOut: 5000 });

toastr["error"]("expired , Do you want to dispose ?<br /><br /><button type='button' id='btnDisposeYes' class='btn clear' style='background-color: white;color: black;'>Yes</button><button type='button' class='btn clear' style='margin-left: 10px;background-color: white;color: black;' id='btnDisposeNo'>No</button>");

toastr.success('Record added sucessfully', 'Success', { timeOut: 5000 });
read more

Wednesday, 5 October 2016

Check if value is Int - c#

No comments
if (IsInt(Request.QueryString["mayColumn"]))
                    mayColumn = Convert.ToInt32(Request.QueryString["mayColumn"]);


 //check if value is int
        private bool IsInt(string sVal)
        {
            foreach (char c in sVal)
            {
                int iN = (int)c;
                if ((iN > 57) || (iN < 48))
                    return false;
            }
            return true;
        }
read more