Exemple #1
0
        private async void btnEnviar_Click(object sender, EventArgs e)
        {
            this.Close();
            frmPin pin = new frmPin();

            this.Opacity = 0.80;
            pin.ShowDialog();
            this.Opacity = 1;


            Ordenes orden = db.Ordenes.Find(OrdenId);

            orden.NumeroOrden = orden.OrdenId.ToString();
            orden.HoraSalida  = this.cmbHora.SelectedItem.ToString() + ":" + this.cmbMinutos.SelectedItem.ToString();

            var a = int.Parse(orden.TotalOrden.ToString());
            var b = int.Parse(txtpago.Text);
            var c = a - b;

            orden.CantidadRestante = c;
            orden.EmpleadoRealizo  = Program.Pin;
            orden.CantidadPagada   = double.Parse(txtpago.Text);
            orden.FechaSalida      = txtFecha.Text;

            if (Program.Editar == 1)
            {
                orden.EmpleadoActualizo = Program.Pin;
            }
            db.Entry(orden).State = EntityState.Modified;
            db.SaveChanges();
            if (ckbNopagar.Checked == false && Program.Editar == 1)
            {
                var query = db.Pagos.Where(q => q.OrdenId == OrdenId).ToList();
                if (query.Count > 0)
                {
                    var idPAgo = query.FirstOrDefault().PagoId;



                    Pagos pago = db.Pagos.Find(idPAgo);

                    pago.Fecha           = DateTime.Today;
                    pago.EmpleadoRealizo = Program.Pin;
                    pago.Monto           = double.Parse(txtpago.Text);
                    pago.MedioPagoId     = int.Parse(cmbTipoPago.SelectedValue.ToString());
                    pago.OrdenId         = orden.OrdenId;
                    db.Entry(pago).State = EntityState.Modified;

                    db.SaveChanges();
                    var TotalOrden = db.OrdenDetallePrendas.Where(w => w.OrdenId == orden.OrdenId).SelectMany(q => q.DetalleTareas).ToList().Sum(q => q.Subtotal);
                    var TotalPagos = db.Pagos.Where(w => w.OrdenId == orden.OrdenId).Sum(q => q.Monto);
                    if (TotalOrden == TotalPagos)
                    {
                        orden.EstadoId = 5;
                    }
                    else
                    {
                        orden.EstadoId = 6;
                    }
                }
            }
            else
            if (ckbNopagar.Checked == false)
            {
                Pagos pago = new Pagos();
                pago.Fecha           = DateTime.Today;
                pago.EmpleadoRealizo = Program.Pin;
                pago.Monto           = double.Parse(txtpago.Text);
                pago.MedioPagoId     = int.Parse(cmbTipoPago.SelectedValue.ToString());
                pago.OrdenId         = orden.OrdenId;

                db.Pagos.Add(pago);
                db.SaveChanges();
                var TotalOrden = db.OrdenDetallePrendas.Where(w => w.OrdenId == orden.OrdenId).SelectMany(q => q.DetalleTareas).ToList().Sum(q => q.Subtotal);
                var TotalPagos = db.Pagos.Where(w => w.OrdenId == orden.OrdenId).Sum(q => q.Monto);
                if (TotalOrden == TotalPagos)
                {
                    orden.EstadoId = 5;
                }
                else
                {
                    orden.EstadoId = 6;
                }
            }
            Cliente cliente = db.Clientes.Find(ClienteId);

            if (string.IsNullOrEmpty(cliente.Visitas))
            {
                cliente.Visitas = "1"; cliente.Visitas = cliente.Visitas;
            }
            else
            {
                var Visita = int.Parse(cliente.Visitas); Visita += 1;
                cliente.Visitas = Visita.ToString();
            }


            db.Entry(cliente).State = EntityState.Modified;
            db.SaveChanges();
            this.Close();

            Program.Editar = 0;
            var TempleisEmpresa = db.ConfiguracionEnvios.ToList();
            var Email           = db.Templeis.FirstOrDefault().DirrecTempleiFactura;
            var Subjet          = db.Templeis.FirstOrDefault().SubTempleiFactura;

            Email = Email.Replace("{BusinessName}", TempleisEmpresa.FirstOrDefault().NombreEmpresa)
                    .Replace("{AddressLine1}", TempleisEmpresa.FirstOrDefault().DirrecionLinea1)
                    .Replace("{AddressLine2}", TempleisEmpresa.FirstOrDefault().DirrecionLinea2)
                    .Replace("{BusinessPhone}", TempleisEmpresa.FirstOrDefault().Telefono)
                    .Replace("{BusinessWebsite}", TempleisEmpresa.FirstOrDefault().PaginaWeb)
                    .Replace("{BusinessEmail}", TempleisEmpresa.FirstOrDefault().CorreoEmpresa)
                    .Replace("{FirstName}", orden.Cliente.Nombre)
                    .Replace("{OrderId(s)}", orden.OrdenId.ToString())
                    .Replace("{TotalPrice}", orden.TotalOrden.ToString())
                    .Replace("{AmountPaid}", orden.CantidadPagada.ToString())
                    .Replace("{AmountLeft}", orden.CantidadRestante.ToString());
            var DetallePrenda = "<table style='width:100%'><tbody>";

            foreach (var item in orden.Prendas)
            {
                foreach (var itemT in item.DetalleTareas)
                {
                    DetallePrenda += "<tr><td colspan=3>" + item.Prenda.TipoRopa + "X" + item.Cantidad + "</tr></td>";
                    DetallePrenda += "<tr><td>" + itemT.Detalle.Tarea.NombreTareas + "</td>"
                                     + "<td>" + itemT.Detalle.DetalleTareas + "</td>" + "<td>" + itemT.Subtotal + "</td></tr>";
                }
            }
            DetallePrenda += "</tbody></table>";
            Email          = Email.Replace("{OrderDetails}", DetallePrenda);
            await EnvioCorreos.SendMail(txtEmail.Text, Subjet, Email);
        }