예제 #1
0
        public ActionResult CreateCot(CotizacionViewModel cot)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    var usuario = User.Identity.GetUserName();
                    var cliente = cot.Cotizacion.Clientes.ClienteId;
                    var fecha   = cot.GetDate();

                    Cotizacion file = new Cotizacion();

                    file.ClienteId = cliente;
                    file.Fecha     = fecha;

                    DB.Cotizacion.Add(file);
                    DB.SaveChanges();

                    TempData["Status"] = "Upload successful";
                    return(RedirectToAction("ProductoFac", new { cotId = file.CotizacionId }));
                }
            }
            catch (RetryLimitExceededException /* dex */)
            {
                //Log the error (uncomment dex variable name and add a line here to write a log.
                ModelState.AddModelError("", "Unable to save changes. Try again, and if the problem persists see your system administrator.");
            }

            return(View(cot));
        }
예제 #2
0
        public ActionResult EditPost(int?id, CotizacionViewModel mod)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            try
            {
                if (ModelState.IsValid)
                {
                    var cliente = mod.Cotizacion.Clientes.ClienteId;
                    var fecha   = mod.GetDate();

                    Cotizacion file = DB.Cotizacion.Find(id);
                    file.ClienteId = cliente;
                    file.Fecha     = fecha;
                    DB.SaveChanges();
                    return(RedirectToAction("ProductoFac", new { cotId = file.CotizacionId }));
                }
            }
            catch (RetryLimitExceededException /* dex */)
            {
                //Log the error (uncomment dex variable name and add a line here to write a log.
                ModelState.AddModelError("", "Unable to save changes. Try again, and if the problem persists, see your system administrator.");
            }
            return(View(mod));
        }
예제 #3
0
        public IList <TbFaCotizacionDetalle> ViewModelToDomainCD(CotizacionViewModel viewModel)
        {
            var domain = new List <TbFaCotizacionDetalle>();

            foreach (var item in viewModel.CotizacionDetalle)
            {
                domain.Add(ViewModelToDomainSingleCD(item, viewModel));
            }

            return(domain);
        }
예제 #4
0
        public IActionResult Cotizacion()
        {
            var model = new CotizacionViewModel()
            {
                Cantidad = 1
            };

            model.Molduras = _context.Molduras.Select(moldura => new SelectListItem()
            {
                Text  = moldura.Nombre,
                Value = $"{moldura.Desperdicio},{moldura.Precio}"
            }).ToList();
            return(View(model));
        }
예제 #5
0
        public IActionResult CrearCotizacion()
        {
            ViewData["usuario"] = _UserService.GetSingleUser(int.Parse(User.Claims.FirstOrDefault(x => x.Type == ClaimTypes.NameIdentifier)?.Value));
            var tipoCambio = _MonedaService.GetAll();
            var model      = new CotizacionViewModel
            {
                TipoCambioDolar = tipoCambio.FirstOrDefault(m => m.Codigo == 2).ValorCompra,
                TipoCambioEuro  = tipoCambio.FirstOrDefault(m => m.Codigo == 3).ValorCompra,
                Estado          = "Borrador"
            };

            ViewData["monedas"] = tipoCambio;
            return(View("CrearCotizacion", model));
        }
예제 #6
0
        public ActionResult EditarCotizacionDetalle(CotizacionViewModel viewModel)
        {
            try
            {
                var res = _Map.UpdateCD(viewModel);

                return(Json(new { success = true }));
            }
            catch (Exception ex)
            {
                AltivaLog.Log.Insertar(ex.ToString(), "Error");
                return(BadRequest());
            }
        }
예제 #7
0
        public async Task <IActionResult> Create()
        {
            Data.Entities.UserEntity usuario = await _userHelper.GetUserAsync(User.Identity.Name);

            var cotizacion = new CotizacionViewModel()
            {
                FechaCotizacion = DateTime.UtcNow,
                Estados         = Common.Enums.Estados.Tramite,
                UserId          = Guid.Parse(usuario.Id),
                NombreProveedor = usuario.FullName,
                Detalle         = new List <CotizacionDetalleEntity>()
            };

            return(View(cotizacion));
        }
예제 #8
0
        public TbFaCotizacion Create(CotizacionViewModel viewModel)
        {
            try
            {
                var cotizacion = _Service.Save(ViewModelToDomain(viewModel));
                var cd         = cotizacion.TbFaCotizacionDetalle.First();


                return(cotizacion);
            }
            catch (Exception ex)
            {
                AltivaLog.Log.Insertar(ex.ToString(), "Error");
                throw;
            }
        }
예제 #9
0
        // GET: Factura/Edit/5
        //[Authorize(Roles = "Admin, Usuario")]
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            var VM = new CotizacionViewModel();

            VM.Cotizacion = DB.Cotizacion.Include(c => c.Clientes)
                            .FirstOrDefault(c => c.CotizacionId == id);
            VM.Fecha = (VM.Cotizacion.Fecha).ToString("dd/MM/yyyy");
            if (VM.Cotizacion == null)
            {
                return(HttpNotFound());
            }
            return(View(VM));
        }
예제 #10
0
        // Email Cotizacion
        //[Authorize(Roles = "Admin")]
        public ActionResult Email(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            var VM = new CotizacionViewModel();

            VM.Cotizacion = DB.Cotizacion.Include(c => c.Clientes)
                            .FirstOrDefault(c => c.CotizacionId == id);
            VM.DetalleCot = DB.DetalleCot.Include(d => d.Producto)
                            .Where(c => c.CotizacionId == id)
                            .OrderByDescending(c => c.CotizacionId);
            if (VM.Cotizacion == null)
            {
                return(HttpNotFound());
            }
            return(View(VM));
        }
예제 #11
0
        // Delete Cotizacion
        //[Authorize(Roles = "Admin")]
        public ActionResult CotDelete(int?id, bool?saveChangesError = false)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            if (saveChangesError.GetValueOrDefault())
            {
                ViewBag.ErrorMessage = "Delete failed. Try again, and if the problem persists see your system administrator.";
            }
            var VM = new CotizacionViewModel();

            VM.Cotizacion = DB.Cotizacion.Include(c => c.Clientes)
                            .FirstOrDefault(c => c.CotizacionId == id);
            if (VM.Cotizacion == null)
            {
                return(HttpNotFound());
            }
            return(View(VM));
        }
예제 #12
0
 public ActionResult DeleteCotConfirmed(CotizacionViewModel fac)
 {
     try
     {
         var        MId        = fac.Cotizacion.CotizacionId;
         Cotizacion cotizacion = DB.Cotizacion.Find(MId);
         DB.Cotizacion.Remove(cotizacion);
         IEnumerable <DetalleCot> detallecot = DB.DetalleCot.Where(d => d.CotizacionId == MId);
         if (detallecot != null)
         {
             DB.DetalleCot.RemoveRange(detallecot);
         }
         DB.SaveChanges();
     }
     catch (RetryLimitExceededException /* dex */)
     {
         //Log the error (uncomment dex variable name and add a line here to write a log.
         return(RedirectToAction("FacDelete", new { id = fac.Cotizacion.CotizacionId, saveChangesError = true }));
     }
     return(RedirectToAction("Index"));
 }
예제 #13
0
        public TbFaCotizacion ViewModelToDomain(CotizacionViewModel viewModel)
        {
            var domain = new TbFaCotizacion {
            };

            try
            {
                domain = new TbFaCotizacion
                {
                    IdCotizacion      = viewModel.IdCotizacion,
                    FechaCotizacion   = viewModel.FechaCotizacion,
                    IdCliente         = viewModel.IdCliente,
                    Estado            = viewModel.Estado,
                    IdMoneda          = viewModel.IdMoneda,
                    IdVendedor        = viewModel.IdVendedor,
                    IdUsuarioCreador  = viewModel.IdUsuarioCreador,
                    FechaVencimiento  = viewModel.FechaVencimiento,
                    TipoCambioDolar   = viewModel.TipoCambioDolar,
                    TipoCambioEuro    = viewModel.TipoCambioEuro,
                    FechaCreacion     = viewModel.FechaCreacion,
                    FechaModificacion = DateTime.Now,

                    TbFaCotizacionDetalle = ViewModelToDomainCD(viewModel)
                };

                if (viewModel.IdMoneda == 1)
                {
                    domain.SubTotalBase  = viewModel.SubTotalBase;
                    domain.SubTotalDolar = domain.SubTotalBase * domain.TipoCambioDolar;
                    domain.SubTotalEuro  = domain.SubTotalBase * domain.TipoCambioEuro;

                    domain.SubTotalGravadoBase  = viewModel.SubTotalGravadoBase;
                    domain.SubTotalGravadoDolar = domain.SubTotalGravadoBase / domain.TipoCambioDolar;
                    domain.SubTotalGravadoEuro  = domain.SubTotalGravadoBase / domain.TipoCambioEuro;

                    domain.SubTotalExcentoBase  = viewModel.SubTotalExcentoBase;
                    domain.SubTotalExcentoDolar = domain.SubTotalExcentoBase / domain.TipoCambioDolar;
                    domain.SubTotalExcentoEuro  = domain.SubTotalExcentoBase / domain.TipoCambioEuro;

                    domain.PorcDescuentoBase = viewModel.PorcDescuentoBase;

                    domain.TotalDescuentoBase  = viewModel.TotalDescuentoBase;
                    domain.TotalDescuentoDolar = domain.TotalDescuentoBase / domain.TipoCambioDolar;
                    domain.TotalDescuentoEuro  = domain.TotalDescuentoBase / domain.TipoCambioEuro;

                    domain.SubTotalGravadoNetoBase  = viewModel.SubTotalGravadoNetoBase;
                    domain.SubTotalGravadoNetoDolar = domain.SubTotalGravadoNetoBase / domain.TipoCambioDolar;
                    domain.SubTotalGravadoNetoEuro  = domain.SubTotalGravadoNetoBase / domain.TipoCambioEuro;

                    domain.SubTotalExcentoNetoBase  = viewModel.SubTotalExcentoNetoBase;
                    domain.SubTotalExcentoNetoDolar = domain.SubTotalExcentoNetoBase / domain.TipoCambioDolar;
                    domain.SubTotalExcentoNetoEuro  = domain.SubTotalExcentoNetoBase / domain.TipoCambioEuro;

                    domain.MontoIvabase  = viewModel.MontoIvabase;
                    domain.MontoIvadolar = domain.MontoIvabase / domain.TipoCambioDolar;
                    domain.MontoIvaeuro  = domain.MontoIvabase / domain.TipoCambioEuro;

                    domain.TotalBase  = viewModel.TotalBase;
                    domain.TotalDolar = domain.TotalBase / domain.TipoCambioDolar;
                    domain.TotalEuro  = domain.TotalBase / domain.TipoCambioEuro;
                }
                else if (viewModel.IdMoneda == 2)
                {
                    domain.SubTotalBase  = viewModel.SubTotalBase * domain.TipoCambioDolar;
                    domain.SubTotalDolar = viewModel.SubTotalDolar;
                    domain.SubTotalEuro  = domain.SubTotalBase / domain.TipoCambioDolar;

                    domain.SubTotalGravadoBase  = viewModel.SubTotalGravadoBase * domain.TipoCambioDolar;
                    domain.SubTotalGravadoDolar = viewModel.SubTotalGravadoDolar;
                    domain.SubTotalGravadoEuro  = domain.SubTotalGravadoBase / domain.TipoCambioEuro;

                    domain.SubTotalExcentoBase  = viewModel.SubTotalExcentoBase * domain.TipoCambioDolar;
                    domain.SubTotalExcentoDolar = viewModel.SubTotalExcentoDolar;
                    domain.SubTotalExcentoEuro  = domain.SubTotalExcentoBase / domain.TipoCambioEuro;

                    domain.PorcDescuentoBase = viewModel.PorcDescuentoBase;

                    domain.TotalDescuentoBase  = viewModel.TotalDescuentoBase * domain.TipoCambioDolar;
                    domain.TotalDescuentoDolar = viewModel.TotalDescuentoDolar;
                    domain.TotalDescuentoEuro  = domain.TotalDescuentoBase / domain.TipoCambioEuro;

                    domain.SubTotalGravadoNetoBase  = viewModel.SubTotalGravadoNetoBase * domain.TipoCambioDolar;
                    domain.SubTotalGravadoNetoDolar = viewModel.SubTotalGravadoNetoDolar;
                    domain.SubTotalGravadoNetoEuro  = domain.SubTotalGravadoNetoBase / domain.TipoCambioEuro;

                    domain.SubTotalExcentoNetoBase  = viewModel.SubTotalExcentoNetoBase * domain.TipoCambioDolar;
                    domain.SubTotalExcentoNetoDolar = viewModel.SubTotalExcentoNetoDolar;
                    domain.SubTotalExcentoNetoEuro  = domain.SubTotalExcentoNetoBase / domain.TipoCambioEuro;

                    domain.MontoIvabase  = viewModel.MontoIvabase * domain.TipoCambioDolar;
                    domain.MontoIvadolar = viewModel.MontoIvadolar;
                    domain.MontoIvaeuro  = domain.MontoIvabase / domain.TipoCambioEuro;

                    domain.TotalBase  = viewModel.TotalBase * domain.TipoCambioDolar;
                    domain.TotalDolar = viewModel.TotalDolar;
                    domain.TotalEuro  = domain.TotalBase / domain.TipoCambioEuro;
                }
                else if (viewModel.IdMoneda == 3)
                {
                    domain.SubTotalBase  = viewModel.SubTotalBase * domain.TipoCambioEuro;
                    domain.SubTotalDolar = domain.SubTotalBase / domain.TipoCambioDolar;
                    domain.SubTotalEuro  = viewModel.SubTotalEuro;

                    domain.SubTotalGravadoBase  = viewModel.SubTotalGravadoBase * domain.TipoCambioEuro;
                    domain.SubTotalGravadoDolar = domain.SubTotalGravadoBase / domain.TipoCambioDolar;
                    domain.SubTotalGravadoEuro  = viewModel.SubTotalGravadoEuro;

                    domain.SubTotalExcentoBase  = viewModel.SubTotalExcentoBase * domain.TipoCambioEuro;
                    domain.SubTotalExcentoDolar = domain.SubTotalExcentoBase / domain.TipoCambioDolar;
                    domain.SubTotalExcentoEuro  = viewModel.SubTotalExcentoEuro;

                    domain.PorcDescuentoBase = viewModel.PorcDescuentoBase;

                    domain.TotalDescuentoBase  = viewModel.TotalDescuentoBase * domain.TipoCambioEuro;
                    domain.TotalDescuentoDolar = domain.TotalDescuentoBase / domain.TipoCambioDolar;
                    domain.TotalDescuentoEuro  = viewModel.TotalDescuentoEuro;

                    domain.SubTotalGravadoNetoBase  = viewModel.SubTotalGravadoNetoBase * domain.TipoCambioEuro;
                    domain.SubTotalGravadoNetoDolar = domain.SubTotalGravadoNetoBase / domain.TipoCambioDolar;
                    domain.SubTotalGravadoNetoEuro  = viewModel.SubTotalGravadoNetoEuro;

                    domain.SubTotalExcentoNetoBase  = viewModel.SubTotalExcentoNetoBase * domain.TipoCambioEuro;
                    domain.SubTotalExcentoNetoDolar = domain.SubTotalExcentoNetoBase / domain.TipoCambioDolar;
                    domain.SubTotalExcentoNetoEuro  = viewModel.SubTotalExcentoNetoEuro;

                    domain.MontoIvabase  = viewModel.MontoIvabase * domain.TipoCambioEuro;
                    domain.MontoIvadolar = domain.MontoIvabase / domain.TipoCambioDolar;
                    domain.MontoIvaeuro  = viewModel.MontoIvaeuro;

                    domain.TotalBase  = viewModel.TotalBase * domain.TipoCambioEuro;
                    domain.TotalDolar = domain.TotalBase / domain.TipoCambioDolar;
                    domain.TotalEuro  = viewModel.TotalEuro;
                }
                return(domain);
            }
            catch (Exception ex)
            {
                AltivaLog.Log.Insertar(ex.ToString(), "Advertencia");
                var msj = ex.Message;
                return(domain);
            }
        }
예제 #14
0
        public ActionResult SaveProduct(CotizacionViewModel Model)
        {
            DbContextTransaction Transaction = null;

            try
            {
                if (Model != null)
                {
                    if (!Model.IsSaved)
                    {
                        Transaction = db.Database.BeginTransaction();

                        Cotizacion NewModel = new Cotizacion();
                        NewModel.Fecha      = Helpers.DateHelper.GetColombiaDateTime();
                        NewModel.ClienteID  = Model.CliID;
                        NewModel.EmpresaID  = Model.EmpID;
                        NewModel.VendedorID = Model.VenID;

                        if (Model.OpoID > 0)
                        {
                            NewModel.OportunidadID = Model.OpoID;
                        }

                        var Consecutivo = db.CotizacionConsecutivo.Where(cc => cc.EmpresaID == Model.EmpID).FirstOrDefault();
                        if (Consecutivo == null)
                        {
                            Consecutivo = new CotizacionConsecutivo()
                            {
                                EmpresaID = Model.EmpID, ValorConsecutivo = 0
                            };
                            db.CotizacionConsecutivo.Add(Consecutivo);
                            db.SaveChanges();
                        }

                        NewModel.NumberID = (Consecutivo.ValorConsecutivo + 1).ToString("0000");
                        NewModel.Valor    = (Model.Can * Model.ValUn);
                        NewModel.IsSaved  = true;

                        Consecutivo.ValorConsecutivo = Consecutivo.ValorConsecutivo + 1;
                        db.SaveChanges();

                        db.Cotizacion.Add(NewModel);
                        db.SaveChanges();

                        CotizacionDetalle NewItemModel = new CotizacionDetalle()
                        {
                            CotizacionID = NewModel.CotizacionID,
                            Cotizacion   = NewModel,
                            ProductoID   = Model.ProID,
                            Cantidad     = Model.Can,
                            ValUnitario  = Model.ValUn,
                            ValTotal     = Model.Can * Model.ValUn,
                        };

                        db.CotizacionDetalle.Add(NewItemModel);
                        db.SaveChanges();

                        AddActivityTo(NewModel);

                        Transaction.Commit();

                        return(new JsonResult {
                            Data = new { CotID = NewModel.CotizacionID, Success = true }, ContentEncoding = System.Text.Encoding.UTF8, JsonRequestBehavior = JsonRequestBehavior.AllowGet
                        });
                    }
                    else
                    {
                        var ProductExist = db.CotizacionDetalle.Where(cd => cd.ProductoID == Model.ProID).Any();
                        if (ProductExist)
                        {
                            return(new JsonResult
                            {
                                Data = new { Message = "Este producto ya fue agregado al detalle de la cotización. Seleccione otro producto.", Success = false },
                                ContentEncoding = System.Text.Encoding.UTF8,
                                JsonRequestBehavior = JsonRequestBehavior.AllowGet
                            });
                        }

                        var CotizacionSaved = db.Cotizacion.Where(c => c.CotizacionID == Model.CotID).FirstOrDefault();
                        var Producto        = db.Productos.Where(p => p.ProductoID == Model.ProID).FirstOrDefault();

                        if (CotizacionSaved != null && Producto != null)
                        {
                            CotizacionDetalle NewItemModel = new CotizacionDetalle()
                            {
                                CotizacionID = Model.CotID,
                                Cotizacion   = CotizacionSaved,
                                ProductoID   = Model.ProID,
                                Cantidad     = Model.Can,
                                ValUnitario  = Model.ValUn,
                                ValTotal     = Model.Can * Model.ValUn,
                            };

                            CotizacionSaved.Valor           = CotizacionSaved.Valor + NewItemModel.ValTotal;
                            db.Entry(CotizacionSaved).State = EntityState.Modified;

                            db.CotizacionDetalle.Add(NewItemModel);
                            db.SaveChanges();

                            string Actions    = $"<td><a class=\"fa fa-pencil-square-o\" href=\"#\" title=\"Editar\" onclick=\"EditRecord({NewItemModel.ItemID}); return false;\" ></a> | <a class=\"fa fa-trash-o\" href=\"#\" data-backdrop=\"static\" data-href=\"Petición [email protected]\" data-pkid=\"@item.ItemID\" data-toggle=\"modal\" data-target=\"#confirm-delete\" title=\"Eliminar\"></a></td>";
                            string MessageVal = $"<tr id=\"(del{NewItemModel.ItemID})\"><td>{Producto.ProductoID}</td><td>{Producto.Codigo}</td><td>{Producto.NombreProducto}</td><td>{Producto.Especificaciones}</td><td align=\"right\">{Model.Can.ToString("C2")}</td><td align=\"right\">{Model.ValUn.ToString("C2")}</td><td align=\"right\">{NewItemModel.ValTotal.ToString("C2")}</td>{Actions}</tr>";

                            return(new JsonResult {
                                Data = new { Message = MessageVal, Success = true }, ContentEncoding = System.Text.Encoding.UTF8, JsonRequestBehavior = JsonRequestBehavior.AllowGet
                            });
                        }
                    }
                }

                return(new JsonResult
                {
                    Data = new { Message = "Los datos no se reconocen correctamente. Por favor inténtelo de nuevo.", Success = false },
                    ContentEncoding = System.Text.Encoding.UTF8,
                    JsonRequestBehavior = JsonRequestBehavior.AllowGet
                });
            }
            catch (Exception eX)
            {
                if (Transaction != null)
                {
                    Transaction.Rollback();
                }

                //
                // Log Exception eX
                //

                return(new JsonResult
                {
                    Data = new { Message = "Error ejecutando la acción. Por favor inténtelo de nuevo.", Success = false },
                    ContentEncoding = System.Text.Encoding.UTF8,
                    JsonRequestBehavior = JsonRequestBehavior.AllowGet
                });
            }
        }
예제 #15
0
        public ActionResult CrearEditarCotizacion(CotizacionViewModel viewModel)
        {
            try
            {
                if (viewModel.IdCotizacion != 0)
                {
                    long?idCD = 0;

                    var detalles = _Service.GetAllCotizacionDetalleByIdCotizacion(Convert.ToInt32(viewModel.IdCotizacion));
                    if (detalles.Count == 0)
                    {
                        if (viewModel.CotizacionDetalle.Count() > 0)
                        {
                            var orden = _Map.Update(viewModel);

                            if (viewModel.IdCotizacion != 0 && viewModel.CotizacionDetalle.Count() > 0)
                            {
                                var count = viewModel.CotizacionDetalle.Count();
                                var cd    = _Map.CreateCD(viewModel);
                                idCD = cd.IdCotizacionDetalle;
                            }
                        }
                        else
                        {
                            return(BadRequest());
                        }
                    }
                    else
                    {
                        if (viewModel.CotizacionDetalle.Count() > 0)
                        {
                            var orden = _Map.Update(viewModel);

                            if (viewModel.IdCotizacion != 0 && viewModel.CotizacionDetalle.Count() > 0)
                            {
                                var count = viewModel.CotizacionDetalle.Count();
                                var cd    = _Map.CreateCD(viewModel);
                                idCD = cd.IdCotizacionDetalle;
                            }
                        }
                        else
                        {
                            var orden = _Map.Update(viewModel);
                        }
                    }
                    return(Json(new { success = true, idCD = idCD }));
                }
                else
                {
                    if (viewModel.CotizacionDetalle.Count() > 0)
                    {
                        viewModel.IdUsuarioCreador = int.Parse(User.Claims.FirstOrDefault(x => x.Type == ClaimTypes.NameIdentifier)?.Value);
                        var compra = _Map.Create(viewModel);


                        return(Json(new { success = true, idCotizacion = compra.IdCotizacion }));
                    }
                    else
                    {
                        return(BadRequest());
                    }
                }
            }
            catch (Exception ex)
            {
                AltivaLog.Log.Insertar(ex.ToString(), "Error");
                throw;
                //return BadRequest();
            }
        }
        public ActionResult AgregarCotizacion(CotizacionViewModel model)
        {
            #region [Datos Cotizacion]

            var idCot = _presupuestoSvc.guardarPresupuesto(new PresupuestoDto
            {
                DetalleDescrip      = model.DetalleDescrip,
                FechaEmision        = model.FechaEmision,
                ValorFlete          = model.ValorFlete,
                ValorHH             = model.ValorHH,
                ValorMoneda         = model.ValorMoneda,
                Ascensor            = model.Ascensor,
                CantidadFletes      = model.CantidadFletes,
                DuracionTrabajo     = model.DuracionTrabajo,
                FechaCalculo        = model.FechaCalculo,
                HorasParejas        = model.HorasParejas,
                Obra                = model.Obra,
                PresupuestoNumero   = model.PresupuestoNumero,
                RecargoHHEE         = model.RecargoHHEE,
                Subtotal            = model.Subtotal,
                SubtotalManoObra    = model.SubtotalManoObra,
                Supervisor          = model.Supervisor,
                TecEmisor           = model.TecEmisor,
                Total               = model.Total,
                TotalFletes         = model.TotalFletes,
                TotalnetoComisiones = model.TotalnetoComisiones,
                ValorFletes         = model.ValorFletes,
                ValorHP             = Convert.ToDecimal(model.ValorHP),
                ValorManoObra       = model.ValorManoObra,
                ValorMargenVenta    = model.ValorMargenVenta,
                ValorRepuestos      = model.ValorRepuestos,
                ValorTerceros       = model.ValorTerceros,
                ValorUf             = Convert.ToDecimal(model.ValorUf),
                ValorVenta          = model.ValorVenta
            });

            #endregion

            #region [Repuesto]

            if (Session["repuesto"] != null)
            {
                IList <PresupuestoRepuestoViewModel> listRepuesto = new List <PresupuestoRepuestoViewModel>();
                listRepuesto = (List <PresupuestoRepuestoViewModel>)Session["repuesto"];

                foreach (var repuesto in listRepuesto)
                {
                    var resultado = _presupuestoSvc.guardarPresupuestoRepuesto(new PresupuestoRepuestoDto
                    {
                        Cantidad      = repuesto.Cantidad,
                        Codigo        = repuesto.Codigo,
                        HoraParHombre = repuesto.HoraParHombre,
                        Presupuesto   = idCot,
                        Repuesto      = repuesto.Respuesto, // valor fijo esperando validacion
                        SubTotal      = repuesto.SubTotal,
                        ValorUnitario = repuesto.ValorUnitario
                    });
                }
            }
            #endregion

            #region [Terceros]
            if (Session["terceros"] != null)
            {
                IList <PresupuestoTrabajoTercerosViewModel> listTercero = new List <PresupuestoTrabajoTercerosViewModel>();
                listTercero = (List <PresupuestoTrabajoTercerosViewModel>)Session["terceros"];


                foreach (var tercero in listTercero)
                {
                    var resultado = _presupuestoSvc.guardarPresupuestoTerceros(new PresupuestoTercerosDto
                    {
                        Presupuesto = idCot,
                        Descripcion = tercero.Terceros,
                        Valor       = tercero.ValTer
                    });
                }
            }
            #endregion

            return(RedirectToAction("Cotizacion"));
        }
예제 #17
0
 public TbFaCotizacion Update(CotizacionViewModel viewModel)
 {
     return(_Service.Update(ViewModelToDomainEdit(viewModel)));
 }
예제 #18
0
        public TbFaCotizacionDetalle ViewModelToDomainSingleCD(CotizacionDetalleViewModels viewModel, CotizacionViewModel compra)
        {
            var domain = new TbFaCotizacionDetalle
            {
                IdCotizacionDetalle = viewModel.IdCotizacionDetalle,
                IdInventario        = viewModel.IdInventario,
                FechaCreacion       = viewModel.FechaCreacion,
                IdUsuarioCreador    = viewModel.IdUsuarioCreador,
                IdCotizacion        = viewModel.IdCotizacion,
                Cantidad            = viewModel.Cantidad
            };

            float dolar = (float)compra.TipoCambioDolar;
            float euro  = (float)compra.TipoCambioEuro;

            if (compra.IdMoneda == 1)
            {
                domain.PrecioBase  = viewModel.PrecioBase;
                domain.PrecioDolar = domain.PrecioBase / dolar;
                domain.PrecioEuro  = domain.PrecioBase / euro;

                domain.SubTotalBase  = viewModel.SubTotalBase;
                domain.SubTotalDolar = domain.SubTotalBase / dolar;
                domain.SubTotalEuro  = domain.SubTotalBase / euro;

                domain.SubTotalGravadoBase  = viewModel.SubTotalGravadoBase;
                domain.SubTotalGravadoDolar = domain.SubTotalGravadoBase / dolar;
                domain.SubTotalGravadoEuro  = domain.SubTotalGravadoBase / euro;

                domain.SubTotalExcentoBase  = viewModel.SubTotalExcentoBase;
                domain.SubTotalExcentoDolar = domain.SubTotalExcentoBase / dolar;
                domain.SubTotalExcentoEuro  = domain.SubTotalExcentoBase / euro;

                domain.PorcDescuento = viewModel.PorcDescuento;

                domain.TotalDescuentoBase  = viewModel.TotalDescuentoBase;
                domain.TotalDescuentoDolar = domain.TotalDescuentoBase / dolar;
                domain.TotalDescuentoEuro  = domain.TotalDescuentoBase / euro;

                domain.SubTotalGravadoNetoBase  = viewModel.SubTotalGravadoNetoBase;
                domain.SubTotalGravadoNetoDolar = domain.SubTotalGravadoNetoBase / dolar;
                domain.SubTotalGravadoNetoEuro  = domain.SubTotalGravadoNetoBase / euro;

                domain.SubTotalExcentoNetoBase  = viewModel.SubTotalExcentoNetoBase;
                domain.SubTotalExcentoNetoDolar = domain.SubTotalExcentoNetoBase / dolar;
                domain.SubTotalExcentoNetoEuro  = domain.SubTotalExcentoNetoBase / euro;

                domain.MontoIvaBase  = viewModel.MontoIvaBase;
                domain.MontoIvaDolar = domain.MontoIvaBase / dolar;
                domain.MontoIvaEuro  = domain.MontoIvaBase / euro;

                domain.TotalBase  = viewModel.TotalBase;
                domain.TotalDolar = domain.TotalBase / dolar;
                domain.TotalEuro  = domain.TotalBase / euro;
            }
            else if (compra.IdMoneda == 2)
            {
                domain.PrecioBase  = viewModel.PrecioBase;
                domain.PrecioDolar = viewModel.PrecioBase / dolar;
                domain.PrecioEuro  = domain.PrecioBase / euro;

                domain.SubTotalBase  = viewModel.SubTotalBase;
                domain.SubTotalDolar = viewModel.SubTotalBase / dolar;
                domain.SubTotalEuro  = domain.SubTotalBase / euro;

                domain.SubTotalGravadoBase  = viewModel.SubTotalGravadoBase;
                domain.SubTotalGravadoDolar = viewModel.SubTotalGravadoBase / dolar;
                domain.SubTotalGravadoEuro  = domain.SubTotalGravadoBase / euro;

                domain.SubTotalExcentoBase  = viewModel.SubTotalExcentoBase;
                domain.SubTotalExcentoDolar = viewModel.SubTotalExcentoBase / dolar;
                domain.SubTotalExcentoEuro  = domain.SubTotalExcentoBase / euro;

                domain.PorcDescuento = viewModel.PorcDescuento;

                domain.TotalDescuentoBase  = viewModel.TotalDescuentoBase;
                domain.TotalDescuentoDolar = viewModel.TotalDescuentoBase / dolar;
                domain.TotalDescuentoEuro  = domain.TotalDescuentoBase / euro;

                domain.SubTotalGravadoNetoBase  = viewModel.SubTotalGravadoNetoBase;
                domain.SubTotalGravadoNetoDolar = viewModel.SubTotalGravadoNetoBase / dolar;
                domain.SubTotalGravadoNetoEuro  = domain.SubTotalGravadoNetoBase / euro;

                domain.SubTotalExcentoNetoBase  = viewModel.SubTotalExcentoNetoBase;
                domain.SubTotalExcentoNetoDolar = viewModel.SubTotalExcentoNetoBase / dolar;
                domain.SubTotalExcentoNetoEuro  = domain.SubTotalExcentoNetoBase / euro;

                domain.MontoIvaBase  = viewModel.MontoIvaBase;
                domain.MontoIvaDolar = viewModel.MontoIvaBase / dolar;
                domain.MontoIvaEuro  = domain.MontoIvaBase / euro;

                domain.TotalBase  = viewModel.TotalBase;
                domain.TotalDolar = viewModel.TotalBase / dolar;
                domain.TotalEuro  = domain.TotalBase / euro;
            }
            else if (compra.IdMoneda == 3)
            {
                domain.PrecioBase  = viewModel.PrecioBase;
                domain.PrecioDolar = domain.PrecioBase / dolar;
                domain.PrecioEuro  = viewModel.PrecioBase / euro;

                domain.SubTotalBase  = viewModel.SubTotalBase;
                domain.SubTotalDolar = domain.SubTotalBase / dolar;
                domain.SubTotalEuro  = viewModel.SubTotalBase / euro;

                domain.SubTotalGravadoBase  = viewModel.SubTotalGravadoBase;
                domain.SubTotalGravadoDolar = domain.SubTotalGravadoBase / dolar;
                domain.SubTotalGravadoEuro  = viewModel.SubTotalGravadoBase / euro;

                domain.SubTotalExcentoBase  = viewModel.SubTotalExcentoBase;
                domain.SubTotalExcentoDolar = domain.SubTotalExcentoBase / dolar;
                domain.SubTotalExcentoEuro  = viewModel.SubTotalExcentoBase / euro;

                domain.PorcDescuento = viewModel.PorcDescuento;

                domain.TotalDescuentoBase  = viewModel.TotalDescuentoBase;
                domain.TotalDescuentoDolar = domain.TotalDescuentoBase / dolar;
                domain.TotalDescuentoEuro  = viewModel.TotalDescuentoBase / euro;

                domain.SubTotalGravadoNetoBase  = viewModel.SubTotalGravadoNetoBase;
                domain.SubTotalGravadoNetoDolar = domain.SubTotalGravadoNetoBase / dolar;
                domain.SubTotalGravadoNetoEuro  = viewModel.SubTotalGravadoNetoBase / euro;

                domain.SubTotalExcentoNetoBase  = viewModel.SubTotalExcentoNetoBase;
                domain.SubTotalExcentoNetoDolar = domain.SubTotalExcentoNetoBase / dolar;
                domain.SubTotalExcentoNetoEuro  = viewModel.SubTotalExcentoNetoBase / euro;

                domain.MontoIvaBase  = viewModel.MontoIvaBase;
                domain.MontoIvaDolar = domain.MontoIvaBase / dolar;
                domain.MontoIvaEuro  = viewModel.MontoIvaBase / euro;

                domain.TotalBase  = viewModel.TotalBase;
                domain.TotalDolar = domain.TotalBase / dolar;
                domain.TotalEuro  = viewModel.TotalBase / euro;
            }

            return(domain);
        }
예제 #19
0
 public TbFaCotizacionDetalle CreateCD(CotizacionViewModel viewModel)
 {
     return(_Service.SaveCotizacionDetalle(ViewModelToDomainCD(viewModel)[0]));
 }
예제 #20
0
 public bool UpdateCD(CotizacionViewModel viewModel)
 {
     return(_Service.UpdateCotizacionDetalle(ViewModelToDomainCD(viewModel)));
 }
예제 #21
0
        public ActionResult Email(CotizacionViewModel cot, string email)
        {
            if (cot == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            string femail = email.ToString();
            var    VM     = new CotizacionViewModel();

            VM.Cotizacion = DB.Cotizacion.Include(c => c.Clientes)
                            .FirstOrDefault(c => c.CotizacionId == cot.Cotizacion.CotizacionId);
            VM.DetalleCot = DB.DetalleCot.Include(d => d.Producto)
                            .Where(c => c.CotizacionId == cot.Cotizacion.CotizacionId)
                            .OrderByDescending(c => c.CotizacionId);
            var totalFac = VM.Cotizacion.TotalFactura + VM.Cotizacion.Itbis;
            var body     = "<p>Cliente: {0} </p> </p><p> </p><p> </p><p>Saludos, </p><p> </p><p> </p><p>Doris De Los Santos</p><p>EjecutivoVentas</p>";
            var file     = new FileInfo(Server.MapPath("/Content/Cotizacion.pdf"));

            if (file.Exists)
            {
                file.Delete();
            }
            Document doc    = new Document(PageSize.LETTER);
            var      output = new FileStream(Server.MapPath("/Content/Cotizacion.pdf"), FileMode.Create);
            var      writer = PdfWriter.GetInstance(doc, output);

            doc.Open();

            var logo = iTextSharp.text.Image.GetInstance(Server.MapPath("~/Content/Camion.jpg"));

            logo.ScaleAbsoluteHeight(30);
            logo.ScaleAbsoluteWidth(70);
            doc.Add(logo);

            Chunk chunk = new Chunk("EME SOLUCIONES EN GENERAL, S.R.L.", FontFactory.GetFont("Arial", 22, Font.BOLD, BaseColor.BLACK));
            var   parac = new Paragraph(chunk);

            parac.Alignment = Element.ALIGN_CENTER;
            Paragraph para = new Paragraph();

            para.Add("REPARACION DE CAMA DE CAMIONES / SOLDADURA EN GENERAL\nC/Felix Evariso Mejia, ·227," +
                     " Sector Villas Agricolas \nCel.: 829-350-3671  \nRNC: 131-33773-2");
            para.Alignment = Element.ALIGN_CENTER;
            doc.Add(parac);
            doc.Add(para);

            PdfPTable table1 = new PdfPTable(3);
            PdfPCell  celda1 = new PdfPCell();

            table1.WidthPercentage     = 100;
            table1.DefaultCell.Border  = Rectangle.NO_BORDER;
            table1.HorizontalAlignment = 0;

            table1.AddCell(" ");
            table1.AddCell("");
            table1.AddCell("Cotizacion: " + VM.Cotizacion.CotizacionId.ToString());

            doc.Add(table1);

            table1 = new PdfPTable(1);
            table1.DefaultCell.Border = Rectangle.NO_BORDER;
            table1.AddCell("Fecha: " + VM.Cotizacion.Fecha.ToShortDateString());
            table1.AddCell(VM.Cotizacion.Clientes.NombreCliente);
            table1.AddCell("RNC " + VM.Cotizacion.Clientes.RncCliente);

            doc.Add(table1);

            table1 = new PdfPTable(5);
            table1.WidthPercentage = 100;
            table1.SetWidths(new int[] { 1, 1, 2, 1, 1 });
            table1.HorizontalAlignment = 0;
            table1.SpacingBefore       = 20f;
            table1.SpacingAfter        = 30f;

            table1.AddCell("Cantidad");
            table1.AddCell("Ficha");
            table1.AddCell("Descripcion");
            table1.AddCell("Comentario");
            table1.AddCell("Valor RD$");

            foreach (var detalle in VM.DetalleCot)
            {
                table1.AddCell(detalle.Cantidad.ToString());
                table1.AddCell(detalle.FichaVehiculo);
                table1.AddCell(detalle.Producto.NombreProducto);
                table1.AddCell(detalle.Comentario);
                table1.AddCell(detalle.Valor.ToString("C"));
            }

            doc.Add(table1);

            table1 = new PdfPTable(4);
            table1.WidthPercentage     = 100;
            table1.DefaultCell.Border  = Rectangle.NO_BORDER;
            table1.HorizontalAlignment = 0;

            table1.AddCell(" ");
            table1.AddCell(" ");
            table1.AddCell("");
            table1.AddCell("Total RD: " + VM.Cotizacion.TotalFactura.ToString("C"));

            doc.Add(table1);

            table1 = new PdfPTable(4);
            table1.WidthPercentage     = 100;
            table1.DefaultCell.Border  = Rectangle.NO_BORDER;
            table1.HorizontalAlignment = 0;

            table1.AddCell(" ");
            table1.AddCell(" ");
            table1.AddCell("");
            table1.AddCell("18% Itbis: " + VM.Cotizacion.Itbis.ToString("C"));

            doc.Add(table1);

            table1 = new PdfPTable(3);
            table1.WidthPercentage     = 100;
            table1.DefaultCell.Border  = Rectangle.NO_BORDER;
            table1.HorizontalAlignment = 0;

            table1.AddCell(" ");
            table1.AddCell("");
            table1.AddCell("Total General RD: " + totalFac.ToString("C"));

            doc.Add(table1);

            para = new Paragraph();
            para.Add("______________________________ \nFirma Cliente");
            celda1.AddElement(para);
            doc.Add(para);

            doc.Close();
            doc.Dispose();
            output.Dispose();

            MailMessage mail = new MailMessage();

            mail.To.Add(new MailAddress(femail));
            mail.From    = new MailAddress("*****@*****.**");
            mail.Subject = "Cotizacion Nueva";
            string Body = string.Format(body, VM.Cotizacion.Clientes.NombreCliente);

            mail.Body = Body;
            mail.Attachments.Add(new Attachment(Server.MapPath("/Content/Cotizacion.pdf")));
            mail.IsBodyHtml = true;
            using (var smtp = new SmtpClient())
            {
                smtp.Send(mail);
                mail.Dispose();
                return(RedirectToAction("Sent"));
            }
        }
예제 #22
0
        public CotizacionViewModel DomainToViewModel(TbFaCotizacion domain)
        {
            var viewModel = new CotizacionViewModel
            {
                IdCotizacion      = domain.IdCotizacion,
                FechaCotizacion   = domain.FechaCotizacion,
                IdCliente         = domain.IdCliente,
                Estado            = domain.Estado,
                IdMoneda          = domain.IdMoneda,
                IdVendedor        = domain.IdVendedor,
                IdUsuarioCreador  = domain.IdUsuarioCreador,
                FechaVencimiento  = domain.FechaVencimiento,
                TipoCambioDolar   = domain.TipoCambioDolar,
                TipoCambioEuro    = domain.TipoCambioEuro,
                FechaCreacion     = domain.FechaCreacion,
                FechaModificacion = domain.FechaModificacion
            };

            if (domain.IdMoneda == 1)
            {
                viewModel.SubTotalBase             = domain.SubTotalBase;
                viewModel.SubTotalDolar            = domain.SubTotalGravadoDolar;
                viewModel.SubTotalEuro             = domain.SubTotalEuro;
                viewModel.SubTotalGravadoBase      = domain.SubTotalGravadoBase;
                viewModel.SubTotalGravadoDolar     = domain.SubTotalGravadoDolar;
                viewModel.SubTotalGravadoEuro      = domain.SubTotalGravadoEuro;
                viewModel.SubTotalExcentoBase      = domain.SubTotalExcentoBase;
                viewModel.SubTotalExcentoDolar     = domain.SubTotalExcentoDolar;
                viewModel.SubTotalExcentoEuro      = domain.SubTotalExcentoEuro;
                viewModel.PorcDescuentoBase        = Convert.ToDouble(domain.PorcDescuentoBase);
                viewModel.TotalDescuentoBase       = domain.TotalDescuentoBase;
                viewModel.TotalDescuentoDolar      = domain.TotalDescuentoDolar;
                viewModel.TotalDescuentoEuro       = domain.TotalDescuentoEuro;
                viewModel.SubTotalGravadoNetoBase  = domain.SubTotalGravadoNetoBase;
                viewModel.SubTotalGravadoNetoDolar = domain.SubTotalGravadoNetoDolar;
                viewModel.SubTotalGravadoNetoEuro  = domain.SubTotalGravadoNetoEuro;
                viewModel.SubTotalExcentoNetoBase  = domain.SubTotalExcentoNetoBase;
                viewModel.SubTotalExcentoNetoDolar = domain.SubTotalExcentoNetoDolar;
                viewModel.SubTotalExcentoNetoEuro  = domain.SubTotalExcentoNetoEuro;
                viewModel.MontoIvabase             = domain.MontoIvabase;
                viewModel.MontoIvadolar            = domain.MontoIvadolar;
                viewModel.MontoIvaeuro             = domain.MontoIvaeuro;
                viewModel.TotalBase  = domain.TotalBase;
                viewModel.TotalDolar = domain.TotalDolar;
                viewModel.TotalEuro  = domain.TotalEuro;
            }
            else if (domain.IdMoneda == 2)
            {
                viewModel.SubTotalBase             = domain.SubTotalBase;
                viewModel.SubTotalDolar            = domain.SubTotalGravadoDolar;
                viewModel.SubTotalEuro             = domain.SubTotalEuro;
                viewModel.SubTotalGravadoBase      = domain.SubTotalGravadoBase;
                viewModel.SubTotalGravadoDolar     = domain.SubTotalGravadoDolar;
                viewModel.SubTotalGravadoEuro      = domain.SubTotalGravadoEuro;
                viewModel.SubTotalExcentoBase      = domain.SubTotalExcentoBase;
                viewModel.SubTotalExcentoDolar     = domain.SubTotalExcentoDolar;
                viewModel.SubTotalExcentoEuro      = domain.SubTotalExcentoEuro;
                viewModel.PorcDescuentoBase        = Convert.ToDouble(domain.PorcDescuentoBase);
                viewModel.TotalDescuentoBase       = domain.TotalDescuentoBase;
                viewModel.TotalDescuentoDolar      = domain.TotalDescuentoDolar;
                viewModel.TotalDescuentoEuro       = domain.TotalDescuentoEuro;
                viewModel.SubTotalGravadoNetoBase  = domain.SubTotalGravadoNetoBase;
                viewModel.SubTotalGravadoNetoDolar = domain.SubTotalGravadoNetoDolar;
                viewModel.SubTotalGravadoNetoEuro  = domain.SubTotalGravadoNetoEuro;
                viewModel.SubTotalExcentoNetoBase  = domain.SubTotalExcentoNetoBase;
                viewModel.SubTotalExcentoNetoDolar = domain.SubTotalExcentoNetoDolar;
                viewModel.SubTotalExcentoNetoEuro  = domain.SubTotalExcentoNetoEuro;
                viewModel.MontoIvabase             = domain.MontoIvabase;
                viewModel.MontoIvadolar            = domain.MontoIvadolar;
                viewModel.MontoIvaeuro             = domain.MontoIvaeuro;
                viewModel.TotalBase  = domain.TotalBase;
                viewModel.TotalDolar = domain.TotalDolar;
                viewModel.TotalEuro  = domain.TotalEuro;
            }
            else if (domain.IdMoneda == 3)
            {
                viewModel.SubTotalBase             = domain.SubTotalBase;
                viewModel.SubTotalDolar            = domain.SubTotalGravadoDolar;
                viewModel.SubTotalEuro             = domain.SubTotalEuro;
                viewModel.SubTotalGravadoBase      = domain.SubTotalGravadoBase;
                viewModel.SubTotalGravadoDolar     = domain.SubTotalGravadoDolar;
                viewModel.SubTotalGravadoEuro      = domain.SubTotalGravadoEuro;
                viewModel.SubTotalExcentoBase      = domain.SubTotalExcentoBase;
                viewModel.SubTotalExcentoDolar     = domain.SubTotalExcentoDolar;
                viewModel.SubTotalExcentoEuro      = domain.SubTotalExcentoEuro;
                viewModel.PorcDescuentoBase        = Convert.ToDouble(domain.PorcDescuentoBase);
                viewModel.TotalDescuentoBase       = domain.TotalDescuentoBase;
                viewModel.TotalDescuentoDolar      = domain.TotalDescuentoDolar;
                viewModel.TotalDescuentoEuro       = domain.TotalDescuentoEuro;
                viewModel.SubTotalGravadoNetoBase  = domain.SubTotalGravadoNetoBase;
                viewModel.SubTotalGravadoNetoDolar = domain.SubTotalGravadoNetoDolar;
                viewModel.SubTotalGravadoNetoEuro  = domain.SubTotalGravadoNetoEuro;
                viewModel.SubTotalExcentoNetoBase  = domain.SubTotalExcentoNetoBase;
                viewModel.SubTotalExcentoNetoDolar = domain.SubTotalExcentoNetoDolar;
                viewModel.SubTotalExcentoNetoEuro  = domain.SubTotalExcentoNetoEuro;
                viewModel.MontoIvabase             = domain.MontoIvabase;
                viewModel.MontoIvadolar            = domain.MontoIvadolar;
                viewModel.MontoIvaeuro             = domain.MontoIvaeuro;
                viewModel.TotalBase  = domain.TotalBase;
                viewModel.TotalDolar = domain.TotalDolar;
                viewModel.TotalEuro  = domain.TotalEuro;
            }


            return(viewModel);
        }
예제 #23
0
        public FileStreamResult Pdf(int?id)
        {
            var VM = new CotizacionViewModel();

            VM.Cotizacion = DB.Cotizacion.Include(c => c.Clientes)
                            .FirstOrDefault(c => c.CotizacionId == id);
            VM.DetalleCot = DB.DetalleCot.Include(d => d.Producto)
                            .Where(c => c.CotizacionId == id)
                            .OrderByDescending(c => c.CotizacionId);
            var totalFac = VM.Cotizacion.TotalFactura + VM.Cotizacion.Itbis;
            var file     = new FileInfo(Server.MapPath("/Content/Cotizacion.pdf"));

            if (file.Exists)
            {
                file.Delete();
            }
            Document doc    = new Document(PageSize.LETTER);
            var      output = new FileStream(Server.MapPath("/Content/Cotizacion.pdf"), FileMode.Create);
            var      writer = PdfWriter.GetInstance(doc, output);

            doc.Open();

            var logo = iTextSharp.text.Image.GetInstance(Server.MapPath("~/Content/Camion.jpg"));

            logo.ScaleAbsoluteHeight(30);
            logo.ScaleAbsoluteWidth(70);
            doc.Add(logo);

            Chunk chunk = new Chunk("EME SOLUCIONES EN GENERAL, S.R.L.", FontFactory.GetFont("Arial", 22, Font.BOLD, BaseColor.BLACK));
            var   parac = new Paragraph(chunk);

            parac.Alignment = Element.ALIGN_CENTER;
            Paragraph para = new Paragraph();

            para.Add("REPARACION DE CAMA DE CAMIONES / SOLDADURA EN GENERAL\nC/Felix Evariso Mejia, ·227," +
                     " Sector Villas Agricolas \nCel.: 829-350-3671  \nRNC: 131-33773-2");
            para.Alignment = Element.ALIGN_CENTER;
            doc.Add(parac);
            doc.Add(para);

            PdfPTable table1 = new PdfPTable(3);
            PdfPCell  celda1 = new PdfPCell();

            table1.WidthPercentage     = 100;
            table1.DefaultCell.Border  = Rectangle.NO_BORDER;
            table1.HorizontalAlignment = 0;

            table1.AddCell(" ");
            table1.AddCell("");
            table1.AddCell("Cotizacion: " + VM.Cotizacion.CotizacionId.ToString());

            doc.Add(table1);

            table1 = new PdfPTable(1);
            table1.DefaultCell.Border = Rectangle.NO_BORDER;
            table1.AddCell("Fecha: " + VM.Cotizacion.Fecha.ToShortDateString());
            table1.AddCell(VM.Cotizacion.Clientes.NombreCliente);
            table1.AddCell("RNC " + VM.Cotizacion.Clientes.RncCliente);

            doc.Add(table1);

            table1 = new PdfPTable(5);
            table1.WidthPercentage = 100;
            table1.SetWidths(new int[] { 1, 1, 2, 1, 1 });
            table1.HorizontalAlignment = 0;
            table1.SpacingBefore       = 20f;
            table1.SpacingAfter        = 30f;

            table1.AddCell("Cantidad");
            table1.AddCell("Ficha");
            table1.AddCell("Descripcion");
            table1.AddCell("Comentario");
            table1.AddCell("Valor RD$");

            foreach (var detalle in VM.DetalleCot)
            {
                table1.AddCell(detalle.Cantidad.ToString());
                table1.AddCell(detalle.FichaVehiculo);
                table1.AddCell(detalle.Producto.NombreProducto);
                table1.AddCell(detalle.Comentario);
                table1.AddCell(detalle.Valor.ToString("C"));
            }

            doc.Add(table1);

            table1 = new PdfPTable(4);
            table1.WidthPercentage     = 100;
            table1.DefaultCell.Border  = Rectangle.NO_BORDER;
            table1.HorizontalAlignment = 0;

            table1.AddCell(" ");
            table1.AddCell(" ");
            table1.AddCell("");
            table1.AddCell("Total RD: " + VM.Cotizacion.TotalFactura.ToString("C"));

            doc.Add(table1);

            table1 = new PdfPTable(4);
            table1.WidthPercentage     = 100;
            table1.DefaultCell.Border  = Rectangle.NO_BORDER;
            table1.HorizontalAlignment = 0;

            table1.AddCell(" ");
            table1.AddCell(" ");
            table1.AddCell("");
            table1.AddCell("18% Itbis: " + VM.Cotizacion.Itbis.ToString("C"));

            doc.Add(table1);

            table1 = new PdfPTable(3);
            table1.WidthPercentage     = 100;
            table1.DefaultCell.Border  = Rectangle.NO_BORDER;
            table1.HorizontalAlignment = 0;

            table1.AddCell(" ");
            table1.AddCell("");
            table1.AddCell("Total General RD: " + totalFac.ToString("C"));

            doc.Add(table1);

            para = new Paragraph();
            para.Add("______________________________ \nFirma Cliente");
            celda1.AddElement(para);
            doc.Add(para);

            doc.Close();
            doc.Dispose();

            FileStream fs = new FileStream(Server.MapPath("/Content/Cotizacion.pdf"), FileMode.Open, FileAccess.Read);

            return(File(fs, "application/pdf"));
        }
예제 #24
0
        public TbFaCotizacion ViewModelToDomainEdit(CotizacionViewModel viewModel)
        {
            var domain = _Service.GetCotizacionById((int)viewModel.IdCotizacion);

            domain.IdCotizacion      = viewModel.IdCotizacion;
            domain.FechaCotizacion   = viewModel.FechaCotizacion;
            domain.IdCliente         = viewModel.IdCliente;
            domain.Estado            = viewModel.Estado;
            domain.IdMoneda          = viewModel.IdMoneda;
            domain.IdVendedor        = viewModel.IdVendedor;
            domain.IdUsuarioCreador  = viewModel.IdUsuarioCreador;
            domain.FechaVencimiento  = viewModel.FechaVencimiento;
            domain.TipoCambioDolar   = viewModel.TipoCambioDolar;
            domain.TipoCambioEuro    = viewModel.TipoCambioEuro;
            domain.FechaCreacion     = viewModel.FechaCreacion;
            domain.FechaModificacion = DateTime.Now;

            if (domain.TipoCambioDolar != viewModel.TipoCambioDolar || domain.TipoCambioEuro != viewModel.TipoCambioEuro)
            {
                domain.TipoCambioDolar = viewModel.TipoCambioDolar;
                domain.TipoCambioEuro  = viewModel.TipoCambioEuro;
                UpdateTotales(domain);
            }

            if (viewModel.IdMoneda == 1)
            {
                domain.SubTotalBase  = viewModel.SubTotalBase;
                domain.SubTotalDolar = domain.SubTotalBase / domain.TipoCambioDolar;
                domain.SubTotalEuro  = domain.SubTotalBase / domain.TipoCambioEuro;

                domain.SubTotalGravadoBase  = viewModel.SubTotalGravadoBase;
                domain.SubTotalGravadoDolar = domain.SubTotalGravadoBase / domain.TipoCambioDolar;
                domain.SubTotalGravadoEuro  = domain.SubTotalGravadoBase / domain.TipoCambioEuro;

                domain.SubTotalExcentoBase  = viewModel.SubTotalExcentoBase;
                domain.SubTotalExcentoDolar = domain.SubTotalExcentoBase / domain.TipoCambioDolar;
                domain.SubTotalExcentoEuro  = domain.SubTotalExcentoBase / domain.TipoCambioEuro;

                domain.PorcDescuentoBase = viewModel.PorcDescuentoBase;

                domain.TotalDescuentoBase  = viewModel.TotalDescuentoBase;
                domain.TotalDescuentoDolar = domain.TotalDescuentoBase / domain.TipoCambioDolar;
                domain.TotalDescuentoEuro  = domain.TotalDescuentoBase / domain.TipoCambioEuro;

                domain.SubTotalGravadoNetoBase  = viewModel.SubTotalGravadoNetoBase;
                domain.SubTotalGravadoNetoDolar = domain.SubTotalGravadoNetoBase / domain.TipoCambioDolar;
                domain.SubTotalGravadoNetoEuro  = domain.SubTotalGravadoNetoBase / domain.TipoCambioEuro;

                domain.SubTotalExcentoNetoBase  = viewModel.SubTotalExcentoNetoBase;
                domain.SubTotalExcentoNetoDolar = domain.SubTotalExcentoNetoBase / domain.TipoCambioDolar;
                domain.SubTotalExcentoNetoEuro  = domain.SubTotalExcentoNetoBase / domain.TipoCambioEuro;

                domain.MontoIvabase  = viewModel.MontoIvabase;
                domain.MontoIvadolar = domain.MontoIvabase / domain.TipoCambioDolar;
                domain.MontoIvaeuro  = domain.MontoIvabase / domain.TipoCambioEuro;

                domain.TotalBase  = viewModel.TotalBase;
                domain.TotalDolar = domain.TotalBase / domain.TipoCambioDolar;
                domain.TotalEuro  = domain.TotalBase / domain.TipoCambioEuro;
            }
            else if (viewModel.IdMoneda == 2)
            {
                domain.SubTotalBase  = viewModel.SubTotalBase * domain.TipoCambioDolar;
                domain.SubTotalDolar = viewModel.SubTotalBase;
                domain.SubTotalEuro  = domain.SubTotalBase / domain.TipoCambioEuro;

                domain.SubTotalGravadoBase  = viewModel.SubTotalGravadoBase * domain.TipoCambioDolar;
                domain.SubTotalGravadoDolar = viewModel.SubTotalGravadoBase;
                domain.SubTotalGravadoEuro  = domain.SubTotalGravadoBase / domain.TipoCambioEuro;

                domain.SubTotalExcentoBase  = viewModel.SubTotalExcentoBase * domain.TipoCambioDolar;
                domain.SubTotalExcentoDolar = viewModel.SubTotalExcentoBase;
                domain.SubTotalExcentoEuro  = domain.SubTotalExcentoBase / domain.TipoCambioEuro;

                domain.PorcDescuentoBase = viewModel.PorcDescuentoBase;

                domain.TotalDescuentoBase  = viewModel.TotalDescuentoBase * domain.TipoCambioDolar;
                domain.TotalDescuentoDolar = viewModel.TotalDescuentoBase;
                domain.TotalDescuentoEuro  = domain.TotalDescuentoBase / domain.TipoCambioEuro;

                domain.SubTotalGravadoNetoBase  = viewModel.SubTotalGravadoNetoBase * domain.TipoCambioDolar;
                domain.SubTotalGravadoNetoDolar = viewModel.SubTotalGravadoNetoBase;
                domain.SubTotalGravadoNetoEuro  = domain.SubTotalGravadoNetoBase / domain.TipoCambioEuro;

                domain.SubTotalExcentoNetoBase  = viewModel.SubTotalExcentoNetoBase * domain.TipoCambioDolar;
                domain.SubTotalExcentoNetoDolar = viewModel.SubTotalExcentoNetoBase;
                domain.SubTotalExcentoNetoEuro  = domain.SubTotalExcentoNetoBase / domain.TipoCambioEuro;

                domain.MontoIvabase  = viewModel.MontoIvabase * domain.TipoCambioDolar;
                domain.MontoIvadolar = viewModel.MontoIvabase;
                domain.MontoIvaeuro  = domain.MontoIvabase / domain.TipoCambioEuro;

                domain.TotalBase  = viewModel.TotalBase * domain.TipoCambioDolar;
                domain.TotalDolar = viewModel.TotalBase;
                domain.TotalEuro  = domain.TotalBase / domain.TipoCambioEuro;
            }
            else if (viewModel.IdMoneda == 3)
            {
                domain.SubTotalBase  = viewModel.SubTotalBase * domain.TipoCambioEuro;
                domain.SubTotalDolar = domain.SubTotalBase / domain.TipoCambioDolar;
                domain.SubTotalEuro  = viewModel.SubTotalBase;

                domain.SubTotalGravadoBase  = viewModel.SubTotalGravadoBase * domain.TipoCambioEuro;
                domain.SubTotalGravadoDolar = domain.SubTotalGravadoBase / domain.TipoCambioDolar;
                domain.SubTotalGravadoEuro  = viewModel.SubTotalGravadoBase;

                domain.SubTotalExcentoBase  = viewModel.SubTotalExcentoBase * domain.TipoCambioEuro;
                domain.SubTotalExcentoDolar = domain.SubTotalExcentoBase / domain.TipoCambioDolar;
                domain.SubTotalExcentoEuro  = viewModel.SubTotalExcentoBase / domain.TipoCambioEuro;

                domain.PorcDescuentoBase = viewModel.PorcDescuentoBase;

                domain.TotalDescuentoBase  = viewModel.TotalDescuentoBase * domain.TipoCambioEuro;
                domain.TotalDescuentoDolar = domain.TotalDescuentoBase / domain.TipoCambioDolar;
                domain.TotalDescuentoEuro  = viewModel.TotalDescuentoBase;

                domain.SubTotalGravadoNetoBase  = viewModel.SubTotalGravadoNetoBase * domain.TipoCambioEuro;
                domain.SubTotalGravadoNetoDolar = domain.SubTotalGravadoNetoBase / domain.TipoCambioDolar;
                domain.SubTotalGravadoNetoEuro  = viewModel.SubTotalGravadoNetoBase;

                domain.SubTotalExcentoNetoBase  = viewModel.SubTotalExcentoNetoBase * domain.TipoCambioEuro;
                domain.SubTotalExcentoNetoDolar = domain.SubTotalExcentoNetoBase / domain.TipoCambioDolar;
                domain.SubTotalExcentoNetoEuro  = viewModel.SubTotalExcentoNetoBase;

                domain.MontoIvabase  = viewModel.MontoIvabase * domain.TipoCambioEuro;
                domain.MontoIvadolar = domain.MontoIvabase / domain.TipoCambioDolar;
                domain.MontoIvaeuro  = viewModel.MontoIvabase;

                domain.TotalBase  = viewModel.TotalBase * domain.TipoCambioEuro;
                domain.TotalDolar = domain.TotalBase / domain.TipoCambioDolar;
                domain.TotalEuro  = viewModel.TotalBase;
            }
            return(domain);
        }