public ActionResult registroDetalle(detalle objdetalle)
 {
     if (ModelState.IsValid)
     {
         db.detalle.Add(objdetalle);
         db.SaveChanges();
         return(RedirectToAction("registro"));
     }
     return(View(objdetalle));
 }
Ejemplo n.º 2
0
    public List<detalle> getDetalle(string rango)
    {
        dc = new System.Data.SqlClient.SqlConnection(ConfigurationManager.ConnectionStrings["ePlaceDBConnectionString"].ConnectionString);

        detalle item = new detalle();
        SqlCommand command = new SqlCommand();
        command.Connection = dc;
        command.CommandType = CommandType.StoredProcedure;
        using (dc)
        {
            try
            {
                dc.Open();
                var parametros = new SqlParameter[]
                                 {
                                      new SqlParameter
                                         {
                                             SqlDbType = SqlDbType.VarChar,
                                             Direction = ParameterDirection.Input,
                                             ParameterName = "@rango",
                                             Value = rango
                                         }
                                 };
                //IDataReader lector;

                command.Parameters.AddRange(parametros);
                command.CommandText = "SOCG_ejecutaDetalle";
                lector = command.ExecuteReader();

                List<detalle> det = new List<detalle>();

                while (lector.Read())
                {
                   det.Add(item.castDR(lector));
                }

                lector.Close();
                dc.Dispose();
                return det;
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }
    }
Ejemplo n.º 3
0
        public ActionResult PlanDePago(PlanViewModel model)
        {
            try
            {
                //Verificar si es modelo es correcto
                if (!ModelState.IsValid)
                {
                    using (var db = new FinanzasEntities())
                    {
                        List <compraInteligente> listado = db.compraInteligente.Where(x => x.user.id.Equals(UserF.id)).OrderByDescending(x => x.fecha).ToList();
                        model.Planes       = listado;
                        ViewBag.vehiculoId = new SelectList(db.vehiculo.ToList(), "id", "modelo");
                        ViewData["id"]     = UserF.name;
                        return(View(model));
                    }
                }

                if (model.Fecha <= DateTime.Now)
                {
                    using (var db = new FinanzasEntities())
                    {
                        List <compraInteligente> listado = db.compraInteligente.Where(x => x.user.id.Equals(UserF.id)).OrderByDescending(x => x.fecha).ToList();
                        model.Planes       = listado;
                        ViewBag.vehiculoId = new SelectList(db.vehiculo.ToList(), "id", "modelo");
                        ViewData["id"]     = UserF.name;
                        return(View(model));
                    }
                }

                int idC = 0;

                using (var db = new FinanzasEntities())
                {
                    double tasaPeriodo = 0f;
                    if (model.tipoTasa == 1) //TEA
                    {
                        model.TEA = Convert.ToDecimal(model.Tasa);
                    }
                    else
                    {
                        tasaPeriodo = Math.Pow((1 + (((double)model.Tasa / 100) / 360)), 360) - 1;
                        model.TEA   = Convert.ToDecimal(tasaPeriodo * 100);
                    }

                    #region CalcularPlan
                    compraInteligente oCompra = new compraInteligente();
                    oCompra.fecha        = model.Fecha;
                    oCompra.inicial      = Convert.ToDecimal((model.cuotaInicial / 100) * model.valor);
                    oCompra.moneda       = model.moneda;
                    oCompra.monto        = Convert.ToDecimal(model.valor);
                    oCompra.periodo_pago = model.periodo;
                    oCompra.TCEA         = Convert.ToDecimal(0);
                    oCompra.TEA          = model.TEA;
                    oCompra.VAN          = Convert.ToDecimal(0);
                    oCompra.vehiculoId   = model.vehiculoId;
                    oCompra.idUser       = UserF.id;
                    oCompra.user         = db.user.Find(UserF.id);
                    oCompra.vehiculo     = db.vehiculo.Find(model.vehiculoId);

                    db.compraInteligente.Add(oCompra);
                    db.SaveChanges();
                    #endregion

                    /*Agregar detalle de compra*/
                    idC      = (from d in db.compraInteligente orderby d.id descending select d.id).FirstOrDefault();
                    UserF.ci = idC;
                    compraInteligente compra   = (from d in db.compraInteligente where d.id == idC select d).FirstOrDefault();
                    vehiculo          car      = db.vehiculo.Find(compra.vehiculoId);
                    DateTime          fechaIni = oCompra.fecha;

                    double Sfinal = Math.Round(Convert.ToDouble(compra.monto - compra.inicial), 2);
                    double TEP = UserF.TEfectivaP((double)compra.TEA);
                    double cuota = UserF.CalcCuota(TEP, compra.periodo_pago, Sfinal);                                                 //redondear a 2
                    double segDes = Math.Round(0.00050 * Sfinal, 2);                                                                  //redondear a 2
                    double segRie = Math.Round(((Convert.ToDouble((car.segRiesgo) / 100)) * Convert.ToDouble(compra.monto)) / 12, 2); //redondear a 2
                    double inter, amort;

                    #region CalcularDetallePlan(pg=s)
                    for (int i = 0; i <= oCompra.periodo_pago; i++)
                    {
                        detalle oDetalle = new detalle();
                        if (i == 0)
                        {
                            oDetalle.n                 = i;
                            oDetalle.fecha             = fechaIni;
                            oDetalle.TEP               = 0;
                            oDetalle.plazoGracia       = "_";
                            oDetalle.saldoInicial      = 0;
                            oDetalle.interes           = 0;
                            oDetalle.cuota             = 0;
                            oDetalle.amortizacion      = 0;
                            oDetalle.seguroDesgrav     = 0;
                            oDetalle.seguroRiesgo      = 0;
                            oDetalle.saldoFinal        = 0;
                            oDetalle.flujo             = Convert.ToDecimal(Sfinal);
                            oDetalle.compraId          = idC;
                            oDetalle.compraInteligente = compra;
                            db.detalle.Add(oDetalle);
                            db.SaveChanges();
                        }
                        else
                        {
                            oDetalle.n            = i;
                            oDetalle.fecha        = fechaIni.AddMonths(1);
                            oDetalle.TEP          = Convert.ToDecimal(TEP * 100);
                            oDetalle.plazoGracia  = "s";
                            oDetalle.saldoInicial = Convert.ToDecimal(Sfinal);
                            inter                      = Convert.ToDouble((oDetalle.TEP / 100) * oDetalle.saldoInicial);
                            oDetalle.interes           = Math.Round(Convert.ToDecimal(inter), 2);
                            oDetalle.cuota             = Math.Round(Convert.ToDecimal(cuota), 2);
                            amort                      = cuota - inter;
                            oDetalle.amortizacion      = Math.Round(Convert.ToDecimal(amort), 2);
                            oDetalle.seguroDesgrav     = Convert.ToDecimal(segDes);
                            oDetalle.seguroRiesgo      = Convert.ToDecimal(segRie);
                            oDetalle.saldoFinal        = Math.Round(Convert.ToDecimal(Sfinal - amort), 2);
                            oDetalle.flujo             = Convert.ToDecimal(cuota + segDes + segRie);
                            oDetalle.compraId          = idC;
                            oDetalle.compraInteligente = compra;
                            db.detalle.Add(oDetalle);
                            db.SaveChanges();

                            //actualizo datos
                            fechaIni = oDetalle.fecha;
                            Sfinal   = Sfinal - amort;
                        }
                        #endregion
                    }
                }
                return(Redirect(Url.Content("~/Home/DetallePrevio")));
            }
            catch (Exception)
            {
                PlanViewModel model2 = new PlanViewModel();
                using (var db = new FinanzasEntities())
                {
                    List <compraInteligente> listado = db.compraInteligente.Where(x => x.user.id.Equals(UserF.id)).OrderByDescending(x => x.fecha).ToList();
                    model2.Planes      = listado;
                    ViewBag.vehiculoId = new SelectList(db.vehiculo.ToList(), "id", "modelo");
                }
                ViewBag.Message = "Aplicacion para plan de pago";
                ViewData["id"]  = UserF.name;
                return(View(model2));
            }
        }
Ejemplo n.º 4
0
        public bool GenerarXML(int IdEmpresa, int IdSucursal, int IdGuia)
        {
            try
            {
                fa_parametro_info info_parametro = new fa_parametro_info();
                fa_parametro_Bus  bus_parametro  = new fa_parametro_Bus();
                info_parametro = bus_parametro.Get_Info_parametro(IdEmpresa);
                tb_Empresa_Info info_empresa = new tb_Empresa_Info();
                tb_Empresa_Bus  bus_empresa  = new tb_Empresa_Bus();
                info_empresa = bus_empresa.Get_Info_Empresa(IdEmpresa);



                StreamWriter          myWriter;
                fa_guia_remision_Info info_guia = new fa_guia_remision_Info();
                info_guia = Gat_info_Guia(IdEmpresa, IdSucursal, 1, IdGuia);

                // cabecera del xml
                guiaRemision myObject = new guiaRemision();
                myObject.id                                        = guiaRemisionID.comprobante;
                myObject.version                                   = "1.1.0";
                myObject.id                                        = guiaRemisionID.comprobante;
                myObject.infoTributaria                            = new Info.class_sri.FacturaV2.infoTributaria();
                myObject.infoGuiaRemision                          = new guiaRemisionInfoGuiaRemision();
                myObject.infoTributaria.ambiente                   = "1";
                myObject.infoTributaria.tipoEmision                = "1";
                myObject.infoTributaria.razonSocial                = info_guia.RazonSocial;
                myObject.infoTributaria.nombreComercial            = info_guia.NombreComercial;
                myObject.infoTributaria.ruc                        = info_guia.em_ruc;
                myObject.infoTributaria.claveAcceso                = "0000000000000000000000000000000000000000000000000";
                myObject.infoTributaria.codDoc                     = "06";
                myObject.infoTributaria.estab                      = info_guia.Serie1;
                myObject.infoTributaria.ptoEmi                     = info_guia.Serie2;
                myObject.infoTributaria.secuencial                 = info_guia.NumGuia_Preimpresa;
                myObject.infoTributaria.dirMatriz                  = info_guia.Direccion_Origen;
                myObject.infoGuiaRemision.dirEstablecimiento       = info_guia.Direccion_Origen;
                myObject.infoGuiaRemision.dirPartida               = info_guia.Direccion_Destino;
                myObject.infoGuiaRemision.razonSocialTransportista = info_guia.nom_Transportista;
                if (info_guia.Cedula.Length == 10)
                {
                    myObject.infoGuiaRemision.tipoIdentificacionTransportista = "05";
                }
                else
                {
                    myObject.infoGuiaRemision.tipoIdentificacionTransportista = "04";
                }
                myObject.infoGuiaRemision.rucTransportista      = info_guia.Cedula;
                myObject.infoGuiaRemision.obligadoContabilidad  = "SI";
                myObject.infoGuiaRemision.contribuyenteEspecial = info_empresa.ContribuyenteEspecial;
                myObject.infoGuiaRemision.fechaIniTransporte    = info_guia.gi_FecIniTraslado.ToString().Substring(0, 10);
                myObject.infoGuiaRemision.fechaFinTransporte    = info_guia.gi_FecFinTraslado.ToString().Substring(0, 10);
                myObject.infoGuiaRemision.placa = info_guia.placa;

                // datos del destinatario
                myObject.destinatarios = new guiaRemisionDestinatarios();
                myObject.destinatarios.destinatario = new List <destinatario>();
                destinatario destinatario_ = new destinatario();
                destinatario_.detalles                   = new destinatarioDetalles();
                destinatario_.detalles.detalle           = new List <detalle>();
                destinatario_.identificacionDestinatario = info_guia.pe_cedulaRuc;
                destinatario_.razonSocialDestinatario    = info_guia.pe_nombreCompleto;
                destinatario_.dirDestinatario            = info_guia.Direccion_Destino;
                destinatario_.motivoTraslado             = info_guia.gi_Observacion;

                // datos si la guia tiene factura

                //destinatario_.codEstabDestino = "";
                //destinatario_.ruta = "";
                //destinatario_.codDocSustento = "";
                //destinatario_.numDocSustento = "";
                //destinatario_.numAutDocSustento = "";
                //destinatario_.fechaEmisionDocSustento = "";
                //destinatario_.numAutDocSustento = "";

                myObject.destinatarios.destinatario.Add(destinatario_);

                foreach (var item in info_guia.ListaDetalle)
                {
                    detalle det = new detalle();
                    det.codigoInterno   = item.pr_codigo;
                    det.codigoAdicional = item.pr_codigo;
                    det.descripcion     = item.pr_descripcion;
                    det.cantidad        = (decimal)item.gi_cantidad;
                    det.cantidad        = Convert.ToDecimal(string.Format("{0:0.0000}", item.gi_cantidad));
                    destinatario_.detalles.detalle.Add(det);
                }

                myObject.destinatarios.destinatario.Add(destinatario_);



                // SEREALIZO EL XML
                string sIdCbteRet = "";

                info_parametro.pa_ruta_descarga_xml_fac_elct = @"C:\Users\Administrador.Desarrollo-PC\Desktop\xml\";


                sIdCbteRet = myObject.infoTributaria.razonSocial.Substring(0, 3) + "-GUI-" + myObject.infoTributaria.estab + "-" + myObject.infoTributaria.ptoEmi + "-" + myObject.infoTributaria.secuencial;
                XmlSerializerNamespaces NamespaceObject = new XmlSerializerNamespaces();
                NamespaceObject.Add("", "");
                XmlSerializer mySerializer = new XmlSerializer(typeof(guiaRemision));
                myWriter = new StreamWriter(info_parametro.pa_ruta_descarga_xml_fac_elct + sIdCbteRet + ".xml");
                mySerializer.Serialize(myWriter, myObject, NamespaceObject);
                myWriter.Close();



                return(true);
            }
            catch (Exception ex)
            {
                Core.Erp.Info.Log_Exception.LoggingManager.Logger.Log(Core.Erp.Info.Log_Exception.LoggingCategory.Error, ex.Message);
                throw new Core.Erp.Info.Log_Exception.DalException(string.Format("", "Get_List_guia_remision", ex.Message), ex)
                      {
                          EntityType = typeof(fa_guia_remision_graf_Bus)
                      };
            }
        }
        private List <guiaRemision> Get_Xml_Guia_x_Traspaso(int IdEmpresa, decimal IdGuia)
        {
            try
            {
                tb_Bodega_Bus  Bus_Bodega  = new tb_Bodega_Bus();
                tb_Bodega_Info Info_Bodega = new tb_Bodega_Info();

                in_Guia_x_traspaso_bodega_Info Info_Guia = new in_Guia_x_traspaso_bodega_Info();
                Info_Guia = Get_Info_x_in_Guia(IdEmpresa, IdGuia);

                Info_Bodega = Bus_Bodega.Get_Info_Bodega(IdEmpresa, Convert.ToInt32(Info_Guia.IdSucursal_Partida), 1);

                List <guiaRemision>       listaaux      = new List <guiaRemision>();
                List <guiaRemision>       lista         = new List <guiaRemision>();
                guiaRemisionDestinatarios destinatarios = new guiaRemisionDestinatarios();
                guiaRemision myObject = new guiaRemision();


                myObject.destinatarios     = destinatarios;
                destinatarios.destinatario = new List <destinatario>();
                destinatario         destinatari     = new destinatario();
                destinatarioDetalles destinatariodet = new destinatarioDetalles();
                destinatari.detalles         = destinatariodet;
                destinatari.detalles.detalle = new List <detalle>();

                string correo = "";
                string format = "dd/MM/yyyy";



                myObject.id      = guiaRemisionID.comprobante;
                myObject.version = "1.1.0";
                myObject.id      = guiaRemisionID.comprobante;
                infoTributaria info = new infoTributaria();
                myObject.infoGuiaRemision = new guiaRemisionInfoGuiaRemision();
                //información tributaria
                myObject.infoTributaria             = info;
                info.ambiente                       = "1";
                myObject.infoTributaria.tipoEmision = "1";

                myObject.infoTributaria.razonSocial     = string.IsNullOrEmpty(Info_Guia.razon_social_empresa)?"": Info_Guia.razon_social_empresa.Trim();
                myObject.infoTributaria.nombreComercial = string.IsNullOrEmpty(Info_Guia.nom_comercial_empresa)?"": Info_Guia.nom_comercial_empresa.Trim();
                myObject.infoTributaria.ruc             = Info_Guia.ruc_empresa;

                myObject.infoTributaria.claveAcceso = "0000000000000000000000000000000000000000000000000";
                myObject.infoTributaria.codDoc      = "06";
                myObject.infoTributaria.estab       = Convert.ToString(Info_Guia.IdEstablecimiento);
                myObject.infoTributaria.ptoEmi      = Info_Guia.IdPuntoEmision;
                myObject.infoTributaria.secuencial  = Info_Guia.NumDocumento_Guia;

                myObject.infoTributaria.dirMatriz = string.IsNullOrEmpty(Info_Guia.direc_empresa)?"": Info_Guia.direc_empresa.Trim();
                //datos de la guía de remisión
                myObject.infoGuiaRemision.dirEstablecimiento = string.IsNullOrEmpty(Info_Guia.Direc_sucu_Partida) ? "" : Info_Guia.Direc_sucu_Partida.Trim();
                myObject.infoGuiaRemision.dirPartida         = string.IsNullOrEmpty(Info_Guia.Direc_sucu_Partida) ? "" : Info_Guia.Direc_sucu_Partida.Trim();

                myObject.infoGuiaRemision.razonSocialTransportista        = string.IsNullOrEmpty(Info_Guia.nom_transportista) ? "" : Info_Guia.nom_transportista.Trim();
                myObject.infoGuiaRemision.tipoIdentificacionTransportista = "05";
                myObject.infoGuiaRemision.rucTransportista = Info_Guia.ced_transportista;
                myObject.infoGuiaRemision.placa            = Info_Guia.Placa;


                //        myObject.infoGuiaRemision.obligadoContabilidad = (Info_Guia.obligado_conta_empresa == "SI" || Info_Guia.obligado_conta_empresa=="S") ?"S":"N";
                //      myObject.infoGuiaRemision.contribuyenteEspecial = Info_Guia.contrib_especial_empresa;


                myObject.infoGuiaRemision.fechaIniTransporte = Convert.ToDateTime(Info_Guia.Fecha_Traslado).ToString(format);
                myObject.infoGuiaRemision.fechaFinTransporte = Convert.ToDateTime(Info_Guia.Fecha_llegada).ToString(format);


                //datos del destinatario
                destinatari.identificacionDestinatario = Info_Guia.IdentificacionDestinatario;
                destinatari.razonSocialDestinatario    = string.IsNullOrEmpty(Info_Guia.NombreDestinatario) ? "" : Info_Guia.NombreDestinatario.Trim();
                destinatari.dirDestinatario            = string.IsNullOrEmpty(Info_Guia.Direc_sucu_Llegada) ? "" : Info_Guia.Direc_sucu_Llegada.Trim();
                destinatari.motivoTraslado             = string.IsNullOrEmpty(Info_Guia.nom_Motivo_Traslado)?"": Info_Guia.nom_Motivo_Traslado.Trim();
                //destinatari.ruta = "";

                //destinatari.detalles.detalle
                //myObject.infoGuiaRemision
                //para extraer el detalle de la hoja, multiples lineas de producto

                in_Guia_x_traspaso_bodega_det_Bus         BusDetalle_Guia      = new in_Guia_x_traspaso_bodega_det_Bus();
                List <in_Guia_x_traspaso_bodega_det_Info> ListInfoDetalle_Guia = new List <in_Guia_x_traspaso_bodega_det_Info>();
                ListInfoDetalle_Guia = BusDetalle_Guia.Get_List_Guia_x_traspaso_bodega_x_OC_det(IdEmpresa, IdGuia);

                //if (ListInfoDetalle_Guia.Count() > 0)
                //{
                foreach (var item in ListInfoDetalle_Guia)
                {
                    detalle det = new detalle();
                    det.codigoInterno   = item.IdProducto.ToString();
                    det.codigoAdicional = item.pr_codigo;
                    det.descripcion     = item.nom_producto.Trim() + (item.obs_OCompra == null ? "" : item.obs_OCompra.Trim()) + "(OC#" + item.IdOrdenCompra + ")";
                    det.cantidad        = Convert.ToDecimal(item.Cantidad_enviar);
                    destinatari.detalles.detalle.Add(det);
                }
                //}
                //else
                //{

                in_Guia_x_traspaso_bodega_det_sin_oc_Bus         BusDetalle_Guia_SOC      = new in_Guia_x_traspaso_bodega_det_sin_oc_Bus();
                List <in_Guia_x_traspaso_bodega_det_sin_oc_Info> ListInfoDetalle_Guia_SOC = new List <in_Guia_x_traspaso_bodega_det_sin_oc_Info>();
                ListInfoDetalle_Guia_SOC = BusDetalle_Guia_SOC.Get_List_Guia_x_traspaso_bodega_det_sin_oc(IdEmpresa, IdGuia);

                foreach (var item in ListInfoDetalle_Guia_SOC)
                {
                    detalle det = new detalle();
                    det.codigoInterno   = (item.IdProducto == null) ? item.Num_Fact : Convert.ToDecimal(item.IdProducto).ToString();
                    det.codigoAdicional = item.Num_Fact;
                    det.descripcion     = item.nom_producto.Trim() + (item.observacion == null ? "" : item.observacion.Trim()) + "(Prove:" + item.nom_proveedor + ")";
                    det.cantidad        = Convert.ToDecimal(item.Cantidad_enviar);
                    destinatari.detalles.detalle.Add(det);
                }
                //}



                //campos adicionales guía de remisión
                guiaRemisionCampoAdicional compoadicional = new guiaRemisionCampoAdicional();
                Cl_ValidarEmail_Info       datosAdc       = new Cl_ValidarEmail_Info();
                if (datosAdc.email_bien_escrito(correo) == true)
                {
                    compoadicional.nombre  = "MAIL";
                    compoadicional.Value   = correo;
                    myObject.infoAdicional = new List <guiaRemisionCampoAdicional>();
                    myObject.infoAdicional.Add(compoadicional);
                }
                //punto de llegada
                if (Info_Guia.Direc_sucu_Llegada != "")                                                      //(dtrcabGuiaRe.IsDBNull(27) == false)
                {
                    compoadicional         = new guiaRemisionCampoAdicional();
                    compoadicional.nombre  = "DESTINO";
                    compoadicional.Value   = string.IsNullOrEmpty(Info_Guia.Direc_sucu_Llegada)?"": Info_Guia.Direc_sucu_Llegada;
                    myObject.infoAdicional = new List <guiaRemisionCampoAdicional>();
                    myObject.infoAdicional.Add(compoadicional);
                }

                destinatarios.destinatario.Add(destinatari);
                lista.Add(myObject);

                return(lista);;
            }
            catch (Exception ex)
            {
                Core.Erp.Info.Log_Exception.LoggingManager.Logger.Log(Core.Erp.Info.Log_Exception.LoggingCategory.Error, ex.Message);
                throw new Core.Erp.Info.Log_Exception.DalException(string.Format("", "ObtenerParaGuiaRemision", ex.Message), ex)
                      {
                          EntityType = typeof(in_Guia_x_traspaso_bodega_Bus)
                      };
            }
        }
Ejemplo n.º 6
0
        public ActionResult DetallePrevio(PlanViewModel model)
        {
            double        VAN    = 0;
            double        TCEA   = 0;
            int           idC    = UserF.ci;
            PlanViewModel modelP = new PlanViewModel();

            using (var db = new FinanzasEntities())
            {
                compraInteligente compra  = (from d in db.compraInteligente where d.id == idC select d).FirstOrDefault();
                double            Sfinal  = Math.Round(Convert.ToDouble(compra.monto - compra.inicial), 2);
                List <detalle>    listado = db.detalle.Where(x => x.compraId.Equals(idC)).ToList();
                modelP.cuotaInicial = (float)Convert.ToDouble(compra.inicial);
                modelP.moneda       = compra.moneda;
                modelP.periodo      = compra.periodo_pago;
                modelP.Tasa         = Convert.ToDouble(compra.TEA);
                modelP.valor        = (float)Convert.ToDouble(compra.monto);
                modelP.carro        = (from d in db.vehiculo where d.id == compra.vehiculoId select d).FirstOrDefault();
                modelP.Detalle      = listado;
                double inter, amort, cuota, TEP;
                double TEP2 = UserF.TEfectivaP((double)compra.TEA);

                double[] Flujo = new double[modelP.periodo + 1];
                Flujo[0] = Sfinal;

                if ((model.pgP == "" || model.pgP == null) && (model.pgT == "" || model.pgT == null))
                {
                    for (int r = 1; r <= compra.periodo_pago; r++)
                    {
                        Flujo[r] = -Convert.ToDouble(listado[r].flujo);
                    }
                }
                else
                {
                    List <int> PGP2 = new List <int>();
                    List <int> PGT2 = new List <int>();

                    PGP2.Add(0);
                    PGT2.Add(0);

                    if (model.pgT != null)
                    {
                        string[] PGT = model.pgT.Split(',');
                        for (int i = 0; i < PGT.Length; i++)
                        {
                            PGT2.Add(Convert.ToInt32(PGT[i]));
                        }
                    }
                    if (model.pgP != null)
                    {
                        string[] PGP = model.pgP.Split(',');
                        for (int i = 0; i < PGP.Length; i++)
                        {
                            PGP2.Add(Convert.ToInt32(PGP[i]));
                        }
                    }

                    #region CalculoActualizado
                    for (int i = 1; i <= modelP.periodo; i++)
                    {
                        detalle oDetalle = (from d in db.detalle where d.compraId == idC & d.n == i select d).FirstOrDefault();
                        if (PGT2.Contains(i))
                        {
                            oDetalle.plazoGracia  = "t";
                            oDetalle.saldoInicial = Convert.ToDecimal(Sfinal);
                            inter                 = Convert.ToDouble((oDetalle.TEP / 100) * oDetalle.saldoInicial);
                            oDetalle.interes      = Math.Round(Convert.ToDecimal(inter), 2);
                            oDetalle.cuota        = 0;
                            oDetalle.amortizacion = 0;
                            oDetalle.saldoFinal   = Math.Round(Convert.ToDecimal(Sfinal + inter), 2);
                            oDetalle.flujo        = oDetalle.seguroDesgrav + oDetalle.seguroRiesgo;

                            Flujo[i] = -Convert.ToDouble(oDetalle.flujo);

                            db.Entry(oDetalle).State = EntityState.Modified;
                            db.SaveChanges();

                            Sfinal = Sfinal + inter;
                            //Calcular con plazo de gracia total
                        }
                        else if (PGP2.Contains(i))
                        {
                            oDetalle.plazoGracia  = "p";
                            oDetalle.saldoInicial = Convert.ToDecimal(Sfinal);
                            inter                 = Convert.ToDouble((oDetalle.TEP / 100) * oDetalle.saldoInicial);
                            oDetalle.interes      = Math.Round(Convert.ToDecimal(inter), 2);
                            oDetalle.cuota        = Math.Round(Convert.ToDecimal(inter), 2);
                            amort                 = 0;
                            oDetalle.amortizacion = 0;
                            oDetalle.saldoFinal   = Math.Round(Convert.ToDecimal(Sfinal - amort), 2);
                            oDetalle.flujo        = oDetalle.seguroDesgrav + oDetalle.seguroRiesgo + oDetalle.cuota;

                            Flujo[i] = -Convert.ToDouble(oDetalle.flujo);

                            db.Entry(oDetalle).State = EntityState.Modified;
                            db.SaveChanges();

                            Sfinal = Sfinal - amort;
                            //Calcular con plazo de gracia Parcial
                        }
                        else
                        {
                            oDetalle.saldoInicial = Convert.ToDecimal(Sfinal);
                            inter            = Convert.ToDouble((oDetalle.TEP / 100) * oDetalle.saldoInicial);
                            oDetalle.interes = Math.Round(Convert.ToDecimal(inter), 2);
                            TEP                   = Convert.ToDouble(oDetalle.TEP) / 100;
                            cuota                 = UserF.CalcCuotaNc(TEP, modelP.periodo, i, Sfinal);
                            oDetalle.cuota        = Math.Round(Convert.ToDecimal(cuota), 2);
                            amort                 = cuota - inter;
                            oDetalle.amortizacion = Math.Round(Convert.ToDecimal(amort), 2);
                            oDetalle.saldoFinal   = Math.Round(Convert.ToDecimal(Sfinal - amort), 2);
                            oDetalle.flujo        = oDetalle.seguroDesgrav + oDetalle.seguroRiesgo + oDetalle.cuota;

                            Flujo[i] = -Convert.ToDouble(oDetalle.flujo);

                            db.Entry(oDetalle).State = EntityState.Modified;
                            db.SaveChanges();

                            Sfinal = Sfinal - amort;
                            //Calculo normal
                        }
                    }
                    #endregion
                }

                //TCEA Y VAN
                double TIR = Financial.IRR(ref Flujo, 0.1);
                TCEA = Math.Pow((1 + TIR), 12) - 1;
                double VA = 0;

                for (int j = 1; j <= compra.periodo_pago; j++)
                {
                    VA += Flujo[j] / (Math.Pow((1 + TEP2), j));
                }

                VAN = Flujo[0] + VA;

                compra.TCEA = Convert.ToDecimal(TCEA) * 100;
                compra.VAN  = Math.Round(Convert.ToDecimal(VAN), 2);

                db.Entry(compra).State = EntityState.Modified;
                db.SaveChanges();
                //
            }
            return(Redirect(Url.Content("~/Home/PlanDePago")));
        }
Ejemplo n.º 7
0
        public List <Info.class_sri.GuiaRemision.guiaRemision> GenerarXmlGuiaRemision(List <vwprd_Guia_Remision_Electronica_Info> LstGuia_Remision_Electronica_Info)
        {
            try
            {
                char pad_Cero = '0';


                List <guiaRemision>       listaaux      = new List <guiaRemision>();
                List <guiaRemision>       lista         = new List <guiaRemision>();
                guiaRemisionDestinatarios destinatarios = new guiaRemisionDestinatarios();
                guiaRemision myObject = new guiaRemision();


                myObject.destinatarios     = destinatarios;
                destinatarios.destinatario = new List <destinatario>();
                destinatario         destinatari     = new destinatario();
                destinatarioDetalles destinatariodet = new destinatarioDetalles();
                destinatari.detalles         = destinatariodet;
                destinatari.detalles.detalle = new List <detalle>();
                int    cont   = 0;
                string correo = "";

                foreach (var item in LstGuia_Remision_Electronica_Info)
                {
                    if (cont == 0)
                    {
                        cont             = 1;
                        myObject.id      = guiaRemisionID.comprobante;
                        myObject.version = "1.1.0";
                        myObject.id      = guiaRemisionID.comprobante;
                        infoTributaria info = new infoTributaria();
                        myObject.infoGuiaRemision = new guiaRemisionInfoGuiaRemision();
                        // myObject.destinatarios = new guiaRemisionDestinatarios();
                        //información tributaria
                        myObject.infoTributaria                 = info;
                        info.ambiente                           = "1";
                        myObject.infoTributaria.tipoEmision     = "1";
                        myObject.infoTributaria.razonSocial     = item.RazonSocial;
                        myObject.infoTributaria.nombreComercial = item.NombreComercial;
                        myObject.infoTributaria.ruc             = item.em_ruc;
                        myObject.infoTributaria.claveAcceso     = "0000000000000000000000000000000000000000000000000";
                        myObject.infoTributaria.codDoc          = item.CodDocumentoTipo;
                        myObject.infoTributaria.estab           = Convert.ToString(item.IdSucursal).PadLeft(3, pad_Cero);       //dtrcabGuiaRe.GetString(1).Substring(0, 3);//001 x tener una sola sucursale -  coger codigo tb_sucursal

                        myObject.infoTributaria.ptoEmi     = Convert.ToString(item.IdSucursal).PadLeft(3, pad_Cero);            //dtrcabGuiaRe.GetString(1).Substring(3, 3);//001 x tener una sola punto de venta o caja
                        myObject.infoTributaria.secuencial = Convert.ToString(item.IdGuiaRemision).PadLeft(9, pad_Cero);        // dtrcabGuiaRe.GetString(1).Substring(6, 9);

                        myObject.infoTributaria.dirMatriz = item.em_direccion;                                                  //dtrcabGuiaRe.GetString(6);//tb_empresa
                        //datos de la guía de remisión
                        myObject.infoGuiaRemision.dirEstablecimiento              = item.Su_Direccion;                          //dtrcabGuiaRe.GetString(6);//tb_empresa
                        myObject.infoGuiaRemision.dirPartida                      = item.Direccion_Origen;                      //dtrcabGuiaRe.GetString(7);
                        myObject.infoGuiaRemision.razonSocialTransportista        = item.Nombre_Transportista;                  //dtrcabGuiaRe.GetString(8);//tb_persona
                        myObject.infoGuiaRemision.tipoIdentificacionTransportista = "05";                                       //dtrcabGuiaRe.GetString(9);//ficha sri que tipo de ID-CC pendiente
                        myObject.infoGuiaRemision.rucTransportista                = item.Cedula_Transportista;                  //dtrcabGuiaRe.GetString(10);//tb_persona
                        myObject.infoGuiaRemision.obligadoContabilidad            = item.ObligadoAllevarConta;                  //obliconta;//tb_empresa - conversion S por SI o N por NO
                        myObject.infoGuiaRemision.contribuyenteEspecial           = item.ContribuyenteEspecial;                 //contspecia;
                        myObject.infoGuiaRemision.fechaIniTransporte              = Convert.ToString(item.gi_FechaIniTraslado); //dtrcabGuiaRe.GetString(11);
                        myObject.infoGuiaRemision.fechaFinTransporte              = Convert.ToString(item.gi_FechaFinTraslado); //dtrcabGuiaRe.GetString(12);
                        myObject.infoGuiaRemision.placa = item.placa;                                                           //dtrcabGuiaRe.GetString(13);
                        //datos del destinatario
                        destinatari.identificacionDestinatario = item.pe_cedulaRuc;                                             //dtrcabGuiaRe.GetString(15);
                        destinatari.razonSocialDestinatario    = item.pe_razonSocial;                                           //dtrcabGuiaRe.GetString(16);
                        destinatari.dirDestinatario            = item.pe_direccion;                                             //dtrcabGuiaRe.GetString(17);
                        destinatari.motivoTraslado             = item.descripcion_motivo_traslado;                              //dtrcabGuiaRe.GetString(18);
                        destinatari.ruta = item.ruta;                                                                           //dtrcabGuiaRe.GetString(19);
                        // si la guia de remision tiene factura
                    }

                    //para extraer el detalle de la hoja, multiples lineas de producto
                    detalle det = new detalle();
                    det.codigoInterno   = item.pr_codigo;                                               //dtrcabGuiaRe.GetString(21);
                    det.codigoAdicional = item.pr_descripcion;                                          //dtrcabGuiaRe.GetString(22);
                    det.descripcion     = item.pr_descripcion_2;                                        //dtrcabGuiaRe.GetString(23);
                    det.cantidad        = Convert.ToDecimal(item.gi_cantidad);                          //Convert.ToDecimal(dtrcabGuiaRe.GetDouble(24));
                    // DETALLES ADICIONALES
                    det.detallesAdicionales = new List <detalleDetAdicional>();
                    detalleDetAdicional DtelleAd = new detalleDetAdicional();
                    DtelleAd.nombre = item.unidad_medida_consumo;                                      //dtrcabGuiaRe.GetString(25);
                    DtelleAd.valor  = item.unidad_medida_consumo;                                      //dtrcabGuiaRe.GetString(25);
                    det.detallesAdicionales.Add(DtelleAd);
                    destinatari.detalles.detalle.Add(det);



                    if (item.pe_correo != null)
                    {
                        correo = item.pe_correo;                                                        //dtrcabGuiaRe.GetString(26);
                    }
                    //campos adicionales guía de remisión
                    guiaRemisionCampoAdicional compoadicional = new guiaRemisionCampoAdicional();
                    Cl_ValidarEmail_Info       datosAdc       = new Cl_ValidarEmail_Info();
                    if (datosAdc.email_bien_escrito(correo) == true)
                    {
                        compoadicional.nombre  = "MAIL";
                        compoadicional.Value   = correo;
                        myObject.infoAdicional = new List <guiaRemisionCampoAdicional>();
                        myObject.infoAdicional.Add(compoadicional);
                    }
                    //punto de llegada
                    if (item.Direccion_Destino != "")                                                   //(dtrcabGuiaRe.IsDBNull(27) == false)
                    {
                        compoadicional         = new guiaRemisionCampoAdicional();
                        compoadicional.nombre  = "DESTINO";
                        compoadicional.Value   = item.Direccion_Destino;
                        myObject.infoAdicional = new List <guiaRemisionCampoAdicional>();
                        myObject.infoAdicional.Add(compoadicional);
                    }
                    //Obra de referencia
                    if (item.descripcion_obra != "")                                                    //(dtrcabGuiaRe.IsDBNull(28) == false)
                    {
                        compoadicional         = new guiaRemisionCampoAdicional();
                        compoadicional.nombre  = "OBRA";
                        compoadicional.Value   = item.descripcion_obra;                                 //dtrcabGuiaRe.GetString(28);
                        myObject.infoAdicional = new List <guiaRemisionCampoAdicional>();
                        myObject.infoAdicional.Add(compoadicional);
                    }


                    destinatarios.destinatario.Add(destinatari);
                    lista.Add(myObject);
                }



                return(lista);;
            }
            catch (Exception ex)
            {
                Core.Erp.Info.Log_Exception.LoggingManager.Logger.Log(Core.Erp.Info.Log_Exception.LoggingCategory.Error, ex.Message);
                throw new Core.Erp.Info.Log_Exception.DalException(string.Format("", "ObtenerParaGuiaRemision", ex.Message), ex)
                      {
                          EntityType = typeof(fa_guia_remision_Bus)
                      };
            }
        }
Ejemplo n.º 8
0
    public detalle castDR(IDataReader dr)
    {
        detalle item = new detalle();
        try
        {
            if (dr["anio"] is System.DBNull)
            {
                item.anio = "";
            }
            else
            {
                item.anio = (string)dr["anio"];
            }

            if (dr["DescripcionItem"] is System.DBNull)
            {
                item.DescripcionItem = "";
            }
            else
            {
                item.DescripcionItem = (string)dr["DescripcionItem"];
            }

            if (dr["dia"] is System.DBNull)
            {
                item.dia = "";
            }
            else
            {
                item.dia = (string)dr["dia"];
            }

            if (dr["docid"] is System.DBNull)
            {
                item.docid = "";
            }
            else
            {
                item.docid = (string)dr["docid"];
            }

            if (dr["empid"] is System.DBNull)
            {
                item.empid = "";
            }
            else
            {
                item.empid = (string)dr["empid"];
            }

            if (dr["mes"] is System.DBNull)
            {
                item.mes = "";
            }
            else
            {
                item.mes = (string)dr["mes"];
            }

            if (dr["mestexto"] is System.DBNull)
            {
                item.mestexto = "";
            }
            else
            {
                item.mestexto = (string)dr["mestexto"];
            }

            if (dr["monid"] is System.DBNull)
            {
                item.monid = "";
            }
            else
            {
                item.monid = (string)dr["monid"];
            }

            if (dr["nombre"] is System.DBNull)
            {
                item.nombre = "";
            }
            else
            {
                item.nombre = (string)dr["nombre"];
            }

            if (dr["provid"] is System.DBNull)
            {
                item.provid = "";
            }
            else
            {
                item.provid = (string)dr["provid"];
            }

            if (dr["socio"] is System.DBNull)
            {
                item.socio = "";
            }
            else
            {
                item.socio = (string)dr["socio"];
            }

            if (dr["subtotal"] is System.DBNull)
            {
                item.subtotal = "";
            }
            else
            {
                item.subtotal = (string)dr["subtotal"];
            }

        }
        catch (Exception ex)
        {
            throw new Exception(ex.Message);
        }
        return item;
    }
Ejemplo n.º 9
0
    public DataTable castDT(IDataReader dr, DataTable dt)
    {
        DataRow fila;
        detalle item = new detalle();
        try
        {
            fila = dt.NewRow();
            if (dr["docid"] is System.DBNull)
            {
                fila["docid"] = "";
            }
            else
            {
                fila["docid"] = dr["docid"];
            }
            if (dr["provid"] is System.DBNull)
            {
                fila["provid"] = "";
            }
            else
            {
                fila["provid"] = dr["provid"];
            }
            if (dr["empid"] is System.DBNull)
            {
                fila["empid"] = "";
            }
            else
            {
                fila["empid"] = dr["empid"];
            }
            if (dr["dia"] is System.DBNull)
            {
                fila["dia"] = "";
            }
            else
            {
                fila["dia"] = dr["dia"];
            }
            if (dr["mes"] is System.DBNull)
            {
                fila["mes"] = "";
            }
            else
            {
                fila["mes"] = dr["mes"];
            }
            if (dr["anio"] is System.DBNull)
            {
                fila["anio"] = "";
            }
            else
            {
                fila["anio"] = dr["anio"];
            }
            if (dr["subtotal"] is System.DBNull)
            {
                fila["subtotal"] = "";
            }
            else
            {
                fila["subtotal"] = dr["subtotal"];
            }
            if (dr["monid"] is System.DBNull)
            {
                fila["monid"] = "";
            }
            else
            {
                fila["monid"] = dr["monid"];
            }

            if (dr["mestexto"] is System.DBNull)
            {
                fila["mestexto"] = "";
            }
            else
            {
                fila["mestexto"] = dr["mestexto"];
            }
            if (dr["socio"] is System.DBNull)
            {
                fila["socio"] = "";
            }
            else
            {
                fila["socio"] = dr["socio"];
            }
            if (dr["nombre"] is System.DBNull)
            {
                fila["nombre"] = "";
            }
            else
            {
                fila["nombre"] = dr["nombre"];
            }
            if (dr["DescripcionItem"] is System.DBNull)
            {
                fila["DescripcionItem"] = "";
            }
            else
            {
                fila["DescripcionItem"] = dr["DescripcionItem"];
            }

            dt.Rows.Add(fila);
        }
        catch (Exception e)
        {

            throw new Exception(e.Message);
        }

        return dt;
    }
Ejemplo n.º 10
0
        public DataTable getDetalle(ref DataTable dt, string rango)
        {
            SqlParameter[] param = new SqlParameter[1];
            detalle item = new detalle();
            param[0] = new SqlParameter("@rango", rango);

            datosSQL.ConGenerico = false;
            datosSQL.Parametros = param;
            datosSQL.Stored = "SOCG_ejecutaDetalle";
            lector = ebSQL.ExecuteSPReader(datosSQL);
            item.crearDT(ref dt);

            while (lector.Read())
            {
                dt = item.castDT(lector, dt);
            }

            lector.Close();

               return dt;
        }
Ejemplo n.º 11
0
        public List<detalle> getDetalle(string rango)
        {
            SqlParameter[] param = new SqlParameter[1];
            detalle item = new detalle();

            param[0] = new SqlParameter("@rango", rango);

            datosSQL.ConGenerico = false;
            datosSQL.Parametros = param;
            datosSQL.Stored = "SOCG_ejecutaDetalle";
            lector = ebSQL.ExecuteSPReader(datosSQL);

            List<detalle> det = new List<detalle>();

            while (lector.Read())
            {
                det.Add(item.castDR(lector));
            }

            lector.Close();

            return det;
        }