Пример #1
0
        public Boolean GuardarDB(fa_TerminoPago_Info _Info)
        {
            try
            {
                EntitiesFacturacion context = new EntitiesFacturacion();
                var address = new fa_TerminoPago();

                address.IdTerminoPago   = _Info.IdTerminoPago;
                address.nom_TerminoPago = _Info.nom_TerminoPago;
                address.Dias_Vct        = _Info.Dias_Vct;
                address.Num_Coutas      = _Info.Num_Cuotas;

                context.fa_TerminoPago.Add(address);
                context.SaveChanges();

                return(true);
            }
            catch (Exception ex)
            {
                string arreglo = ToString();
                tb_sis_Log_Error_Vzen_Data oDataLog      = new tb_sis_Log_Error_Vzen_Data();
                tb_sis_Log_Error_Vzen_Info Log_Error_sis = new tb_sis_Log_Error_Vzen_Info(ex.ToString(), "", arreglo, "", "", "", "", "", DateTime.Now);
                mensaje = ex.ToString();
                oDataLog.Guardar_Log_Error(Log_Error_sis, ref mensaje);
                throw new Exception(ex.ToString());
            }
        }
Пример #2
0
        public Boolean ModificarDB(fa_TerminoPago_Info _Info, ref string msjError)
        {
            try
            {
                EntitiesFacturacion context = new EntitiesFacturacion();
                var address = context.fa_TerminoPago.FirstOrDefault(var => var.IdTerminoPago == _Info.IdTerminoPago);
                if (address != null)
                {
                    address.nom_TerminoPago = _Info.nom_TerminoPago;
                    address.Dias_Vct        = _Info.Dias_Vct;
                    address.Num_Coutas      = _Info.Num_Cuotas;

                    context.SaveChanges();
                }

                return(true);
            }
            catch (Exception ex)
            {
                string arreglo = ToString();
                tb_sis_Log_Error_Vzen_Data oDataLog      = new tb_sis_Log_Error_Vzen_Data();
                tb_sis_Log_Error_Vzen_Info Log_Error_sis = new tb_sis_Log_Error_Vzen_Info(ex.ToString(), "", arreglo, "", "", "", "", "", DateTime.Now);
                mensaje = ex.ToString();
                oDataLog.Guardar_Log_Error(Log_Error_sis, ref mensaje);
                msjError = mensaje;
                throw new Exception(ex.ToString());
            }
        }
Пример #3
0
 public Boolean ModificarDB(fa_TerminoPago_Info _Info, List <fa_TerminoPago_Distribucion_Info> lstTerminoDis, ref string msjError)
 {
     try
     {
         fa_TerminoPago_Distribucion_Bus terminoDisBus = new fa_TerminoPago_Distribucion_Bus();
         foreach (var item in lstTerminoDis)
         {
             item.IdTerminoPago = _Info.IdTerminoPago;
         }
         if (terminoDisBus.EliminarDB(_Info.IdTerminoPago, ref msjError))
         {
             if (odata.ModificarDB(_Info, ref msjError))
             {
                 return(terminoDisBus.GuardarDB(lstTerminoDis, ref msjError));
             }
             else
             {
                 return(false);
             }
         }
         else
         {
             return(false);
         }
     }
     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("", "Modificacion", ex.Message), ex)
               {
                   EntityType = typeof(fa_TerminoPago_Bus)
               };
     }
 }
 public fa_TerminoPago_Info get_info(string IdTerminoPago)
 {
     try
     {
         fa_TerminoPago_Info info = new fa_TerminoPago_Info();
         using (Entities_facturacion Context = new Entities_facturacion())
         {
             fa_TerminoPago Entity = Context.fa_TerminoPago.FirstOrDefault(q => q.IdTerminoPago == IdTerminoPago);
             if (Entity == null)
             {
                 return(null);
             }
             info = new fa_TerminoPago_Info
             {
                 IdTerminoPago         = Entity.IdTerminoPago,
                 Dias_Vct              = Entity.Dias_Vct,
                 nom_TerminoPago       = Entity.nom_TerminoPago,
                 Num_Coutas            = Entity.Num_Coutas,
                 AplicaDescuentoNomina = Entity.AplicaDescuentoNomina,
                 CodigoRubroDescto     = Entity.CodigoRubroDescto,
                 estado = Entity.estado
             };
         }
         return(info);
     }
     catch (Exception)
     {
         throw;
     }
 }
        private void cmb_termino_pago_EditValueChanged(object sender, EventArgs e)
        {
            try
            {
                if (cmb_termino_pago.EditValue != null)
                {
                    fa_TerminoPago_Info Info_TerminoPago = new fa_TerminoPago_Info();
                    Info_TerminoPago            = lst_termino_pago.Where(q => q.IdTerminoPago == Convert.ToString(cmb_termino_pago.EditValue)).FirstOrDefault();
                    spinEditDiasPlazo.EditValue = Info_TerminoPago.Dias_Vct;

                    crear_cuotas(Info_TerminoPago.IdTerminoPago);
                }
                else
                {
                    spinEditDiasPlazo.EditValue = 1;
                }
            }
            catch (Exception ex)
            {
                string NameMetodo = System.Reflection.MethodBase.GetCurrentMethod().Name;
                NameMetodo = NameMetodo + " - " + ex.ToString();
                MessageBox.Show(NameMetodo + " " + param.Get_Mensaje_sys(enum_Mensajes_sys.Error_comunicarse_con_sistemas)
                                , param.Nombre_sistema, MessageBoxButtons.OK, MessageBoxIcon.Error);
                Log_Error_bus.Log_Error(NameMetodo + " - " + ex.ToString());
            }
        }
Пример #6
0
        public ActionResult Nuevo()
        {
            #region Validar Session
            if (string.IsNullOrEmpty(SessionFixed.IdTransaccionSession))
            {
                return(RedirectToAction("Login", new { Area = "", Controller = "Account" }));
            }
            SessionFixed.IdTransaccionSession       = (Convert.ToDecimal(SessionFixed.IdTransaccionSession) + 1).ToString();
            SessionFixed.IdTransaccionSessionActual = SessionFixed.IdTransaccionSession;
            #endregion
            #region Permisos
            seg_Menu_x_Empresa_x_Usuario_Info info = bus_permisos.get_list_menu_accion(Convert.ToInt32(SessionFixed.IdEmpresa), SessionFixed.IdUsuario, "Facturacion", "ClienteTipo", "Index");
            if (!info.Nuevo)
            {
                return(RedirectToAction("Index"));
            }
            #endregion

            fa_TerminoPago_Info model = new fa_TerminoPago_Info
            {
                Lst_fa_TerminoPago_Distribucion = new List <fa_TerminoPago_Distribucion_Info>(),
                IdTransaccionSession            = Convert.ToDecimal(SessionFixed.IdTransaccionSession)
            };
            List_fa_TerminoPago_Distribucion.set_list(model.Lst_fa_TerminoPago_Distribucion, model.IdTransaccionSession);
            return(View(model));
        }
Пример #7
0
        public ActionResult Index()
        {
            #region Validar Session
            if (string.IsNullOrEmpty(SessionFixed.IdTransaccionSession))
            {
                return(RedirectToAction("Login", new { Area = "", Controller = "Account" }));
            }
            SessionFixed.IdTransaccionSession       = (Convert.ToDecimal(SessionFixed.IdTransaccionSession) + 1).ToString();
            SessionFixed.IdTransaccionSessionActual = SessionFixed.IdTransaccionSession;
            #endregion

            #region Permisos
            seg_Menu_x_Empresa_x_Usuario_Info info = bus_permisos.get_list_menu_accion(Convert.ToInt32(SessionFixed.IdEmpresa), SessionFixed.IdUsuario, "Facturacion", "ClienteTipo", "Index");
            ViewBag.Nuevo     = info.Nuevo;
            ViewBag.Modificar = info.Modificar;
            ViewBag.Anular    = info.Anular;
            #endregion

            fa_TerminoPago_Info model = new fa_TerminoPago_Info
            {
                IdTransaccionSession = Convert.ToDecimal(SessionFixed.IdTransaccionSession)
            };

            var lst = bus_terminopago.get_list(true);
            Lista_TerminoPago.set_list(lst, model.IdTransaccionSession);
            return(View(model));
        }
Пример #8
0
        public List <fa_TerminoPago_Info> Get_List_TerminoPago()
        {
            try
            {
                EntitiesFacturacion        context = new EntitiesFacturacion();
                List <fa_TerminoPago_Info> lst     = new List <fa_TerminoPago_Info>();

                var select = from q in context.fa_TerminoPago
                             select q;

                fa_TerminoPago_Info _Info;

                foreach (var item in select)
                {
                    _Info = new fa_TerminoPago_Info();
                    _Info.IdTerminoPago   = item.IdTerminoPago;
                    _Info.nom_TerminoPago = item.nom_TerminoPago;
                    _Info.Dias_Vct        = item.Dias_Vct;
                    _Info.Num_Cuotas      = item.Num_Coutas;
                    lst.Add(_Info);
                }
                return(lst);
            }
            catch (Exception ex)
            {
                string arreglo = ToString();
                tb_sis_Log_Error_Vzen_Data oDataLog      = new tb_sis_Log_Error_Vzen_Data();
                tb_sis_Log_Error_Vzen_Info Log_Error_sis = new tb_sis_Log_Error_Vzen_Info(ex.ToString(), "", arreglo, "", "", "", "", "", DateTime.Now);
                mensaje = ex.ToString();
                oDataLog.Guardar_Log_Error(Log_Error_sis, ref mensaje);
                throw new Exception(ex.ToString());
            }
        }
Пример #9
0
        public ActionResult EditingDelete(int Secuencia)
        {
            List_fa_TerminoPago_Distribucion.DeleteRow(Secuencia, Convert.ToDecimal(SessionFixed.IdTransaccionSessionActual));
            fa_TerminoPago_Info model = new fa_TerminoPago_Info();

            model.Lst_fa_TerminoPago_Distribucion = List_fa_TerminoPago_Distribucion.get_list(Convert.ToDecimal(SessionFixed.IdTransaccionSessionActual));
            return(PartialView("_GridViewPartial_pago_dist", model));
        }
Пример #10
0
 public ActionResult Anular(fa_TerminoPago_Info model)
 {
     if (!bus_terminopago.anularDB(model))
     {
         return(View(model));
     }
     return(RedirectToAction("Index"));
 }
Пример #11
0
        public ActionResult Modificar(fa_TerminoPago_Info model)
        {
            model.Lst_fa_TerminoPago_Distribucion = List_fa_TerminoPago_Distribucion.get_list(model.IdTransaccionSession);

            if (!bus_terminopago.modificarDB(model))
            {
                return(View(model));
            }
            return(RedirectToAction("Index"));
        }
Пример #12
0
        public ActionResult Modificar(fa_TerminoPago_Info model)
        {
            model.Lst_fa_TerminoPago_Distribucion = List_fa_TerminoPago_Distribucion.get_list(model.IdTransaccionSession);

            if (!bus_terminopago.modificarDB(model))
            {
                return(View(model));
            }
            return(RedirectToAction("Consultar", new { IdTerminoPago = model.IdTerminoPago, Exito = true }));
        }
Пример #13
0
 public bool anularDB(fa_TerminoPago_Info info)
 {
     try
     {
         return(odata.anularDB(info));
     }
     catch (Exception)
     {
         throw;
     }
 }
 public void setInfo(fa_TerminoPago_Info _Info)
 {
     try
     {
         this._Info = _Info;
     }
     catch (Exception ex)
     {
         Log_Error_bus.Log_Error(ex.ToString());
         MessageBox.Show(ex.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
     }
 }
Пример #15
0
 public ActionResult Nuevo(fa_TerminoPago_Info model)
 {
     model.Lst_fa_TerminoPago_Distribucion = List_fa_TerminoPago_Distribucion.get_list(model.IdTransaccionSession);
     if (bus_terminopago.validar_existe_IdTerminoPago(model.IdTerminoPago))
     {
         ViewBag.mensaje = "El código ya se encuentra registrado";
         return(View(model));
     }
     if (!bus_terminopago.guardarDB(model))
     {
         return(View(model));
     }
     return(RedirectToAction("Index"));
 }
 private void LimpiarDatos()
 {
     try
     {
         txtCodigo.Text      = "";
         txtDias.Text        = "1";
         txtDescripcion.Text = "";
         txtCuota.Text       = "1";
         _Accion             = Cl_Enumeradores.eTipo_action.grabar;
         _Info         = new fa_TerminoPago_Info();
         lstTerminoDis = new BindingList <fa_TerminoPago_Distribucion_Info>();
     }
     catch (Exception ex)
     {
         Log_Error_bus.Log_Error(ex.ToString());
         MessageBox.Show(ex.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
     }
 }
Пример #17
0
        public ActionResult Nuevo()
        {
            #region Validar Session
            if (string.IsNullOrEmpty(SessionFixed.IdTransaccionSession))
            {
                return(RedirectToAction("Login", new { Area = "", Controller = "Account" }));
            }
            SessionFixed.IdTransaccionSession       = (Convert.ToDecimal(SessionFixed.IdTransaccionSession) + 1).ToString();
            SessionFixed.IdTransaccionSessionActual = SessionFixed.IdTransaccionSession;
            #endregion

            fa_TerminoPago_Info model = new fa_TerminoPago_Info
            {
                Lst_fa_TerminoPago_Distribucion = new List <fa_TerminoPago_Distribucion_Info>(),
                IdTransaccionSession            = Convert.ToDecimal(SessionFixed.IdTransaccionSession)
            };
            List_fa_TerminoPago_Distribucion.set_list(model.Lst_fa_TerminoPago_Distribucion, model.IdTransaccionSession);
            return(View(model));
        }
 private void ShowFormulario(Cl_Enumeradores.eTipo_action accion)
 {
     try
     {
         frmFa_factura_TerminoPago_Mant frm = new frmFa_factura_TerminoPago_Mant();
         frm.Event_frmFa_factura_TerminoPago_Mantenimiento_FormClosing += new frmFa_factura_TerminoPago_Mant.delegate_frmFa_factura_TerminoPago_Mantenimiento_FormClosing(event_frmFa_factura_TerminoPago_Mantenimiento_FormClosing);
         frm._Accion = accion;
         if (accion != Cl_Enumeradores.eTipo_action.grabar)
         {
             _Info = gridViewGridTerminoPago.GetFocusedRow() as fa_TerminoPago_Info;
             frm.setInfo(_Info);
         }
         frm.Show();
     }
     catch (Exception ex)
     {
         Log_Error_bus.Log_Error(ex.ToString());
         MessageBox.Show(ex.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
     }
 }
Пример #19
0
        public ActionResult Modificar(string IdTerminoPago = "")
        {
            #region Validar Session
            if (string.IsNullOrEmpty(SessionFixed.IdTransaccionSession))
            {
                return(RedirectToAction("Login", new { Area = "", Controller = "Account" }));
            }
            SessionFixed.IdTransaccionSession       = (Convert.ToDecimal(SessionFixed.IdTransaccionSession) + 1).ToString();
            SessionFixed.IdTransaccionSessionActual = SessionFixed.IdTransaccionSession;
            #endregion

            fa_TerminoPago_Info model = bus_terminopago.get_info(IdTerminoPago);
            if (model == null)
            {
                return(RedirectToAction("Index"));
            }
            model.Lst_fa_TerminoPago_Distribucion = bus_termino_dist.get_list(IdTerminoPago);
            model.IdTransaccionSession            = Convert.ToDecimal(SessionFixed.IdTransaccionSession);
            List_fa_TerminoPago_Distribucion.set_list(model.Lst_fa_TerminoPago_Distribucion, model.IdTransaccionSession);
            return(View(model));
        }
Пример #20
0
        public ActionResult Consultar(string IdTerminoPago = "", bool Exito = false)
        {
            #region Validar Session
            if (string.IsNullOrEmpty(SessionFixed.IdTransaccionSession))
            {
                return(RedirectToAction("Login", new { Area = "", Controller = "Account" }));
            }
            SessionFixed.IdTransaccionSession       = (Convert.ToDecimal(SessionFixed.IdTransaccionSession) + 1).ToString();
            SessionFixed.IdTransaccionSessionActual = SessionFixed.IdTransaccionSession;
            #endregion

            fa_TerminoPago_Info model = bus_terminopago.get_info(IdTerminoPago);
            if (model == null)
            {
                return(RedirectToAction("Index"));
            }

            #region Permisos
            seg_Menu_x_Empresa_x_Usuario_Info info = bus_permisos.get_list_menu_accion(Convert.ToInt32(SessionFixed.IdEmpresa), SessionFixed.IdUsuario, "Facturacion", "ClienteTipo", "Index");
            if (model.estado == false)
            {
                info.Modificar = false;
                info.Anular    = false;
            }
            model.Nuevo     = (info.Nuevo == true ? 1 : 0);
            model.Modificar = (info.Modificar == true ? 1 : 0);
            model.Anular    = (info.Anular == true ? 1 : 0);
            #endregion

            if (Exito)
            {
                ViewBag.MensajeSuccess = MensajeSuccess;
            }

            model.Lst_fa_TerminoPago_Distribucion = bus_termino_dist.get_list(IdTerminoPago);
            model.IdTransaccionSession            = Convert.ToDecimal(SessionFixed.IdTransaccionSession);
            List_fa_TerminoPago_Distribucion.set_list(model.Lst_fa_TerminoPago_Distribucion, model.IdTransaccionSession);
            return(View(model));
        }
Пример #21
0
        public bool anularDB(fa_TerminoPago_Info info)
        {
            try
            {
                using (Entities_facturacion Context = new Entities_facturacion())
                {
                    fa_TerminoPago Entity = Context.fa_TerminoPago.FirstOrDefault(q => q.IdTerminoPago == info.IdTerminoPago);
                    if (Entity == null)
                    {
                        return(false);
                    }

                    Entity.estado = info.estado = false;
                    Context.SaveChanges();
                }
                return(true);
            }
            catch (Exception)
            {
                throw;
            }
        }
Пример #22
0
        public bool modificarDB(fa_TerminoPago_Info info)
        {
            try
            {
                using (Entities_facturacion Context = new Entities_facturacion())
                {
                    fa_TerminoPago Entity = Context.fa_TerminoPago.FirstOrDefault(q => q.IdTerminoPago == info.IdTerminoPago);
                    if (Entity == null)
                    {
                        return(false);
                    }

                    Entity.Dias_Vct              = info.Dias_Vct;
                    Entity.nom_TerminoPago       = info.nom_TerminoPago;
                    Entity.Num_Coutas            = info.Num_Coutas;
                    Entity.AplicaDescuentoNomina = info.AplicaDescuentoNomina;
                    Entity.CodigoRubroDescto     = info.CodigoRubroDescto;

                    foreach (var item in info.Lst_fa_TerminoPago_Distribucion)
                    {
                        fa_TerminoPago_Distribucion det = new fa_TerminoPago_Distribucion
                        {
                            IdTerminoPago    = info.IdTerminoPago,
                            Num_Dias_Vcto    = item.Num_Dias_Vcto,
                            Por_distribucion = item.Por_distribucion,
                            Secuencia        = item.Secuencia
                        };
                        Context.fa_TerminoPago_Distribucion.Add(det);
                    }
                    Context.SaveChanges();
                }
                return(true);
            }
            catch (Exception)
            {
                throw;
            }
        }
Пример #23
0
 public bool guardarDB(fa_TerminoPago_Info info)
 {
     try
     {
         using (Entities_facturacion Context = new Entities_facturacion())
         {
             fa_TerminoPago Entity = new fa_TerminoPago
             {
                 IdTerminoPago         = info.IdTerminoPago,
                 Dias_Vct              = info.Dias_Vct,
                 nom_TerminoPago       = info.nom_TerminoPago,
                 Num_Coutas            = info.Num_Coutas,
                 AplicaDescuentoNomina = info.AplicaDescuentoNomina,
                 CodigoRubroDescto     = info.CodigoRubroDescto,
                 estado = info.estado = true
             };
             Context.fa_TerminoPago.Add(Entity);
             int secuencia = 1;
             foreach (var item in info.Lst_fa_TerminoPago_Distribucion)
             {
                 fa_TerminoPago_Distribucion det = new fa_TerminoPago_Distribucion
                 {
                     IdTerminoPago    = info.IdTerminoPago,
                     Num_Dias_Vcto    = item.Num_Dias_Vcto,
                     Por_distribucion = item.Por_distribucion,
                     Secuencia        = item.Secuencia = secuencia++
                 };
                 Context.fa_TerminoPago_Distribucion.Add(det);
             }
             Context.SaveChanges();
         }
         return(true);
     }
     catch (Exception)
     {
         throw;
     }
 }
        private void gridView_detalle_CellValueChanged(object sender, DevExpress.XtraGrid.Views.Base.CellValueChangedEventArgs e)
        {
            try
            {
                fa_proforma_det_Info row = (fa_proforma_det_Info)gridView_detalle.GetRow(e.RowHandle);
                if (row == null)
                {
                    return;
                }

                if (e.Column == col_checked)
                {
                    if (row.pd_checked)
                    {
                        row.pd_cantidad_aprobada = row.pd_cantidad_pendiente;
                    }
                    else
                    {
                        row.pd_cantidad_aprobada = 0;
                    }

                    row.pd_descuento_uni = Math.Round((row.pd_precio * row.pd_por_descuento_uni) / 100, 2, MidpointRounding.AwayFromZero);
                    row.pd_precio_final  = row.pd_precio - row.pd_descuento_uni;
                    row.pd_subtotal      = row.pd_cantidad_aprobada * row.pd_precio_final;
                    row.pd_iva           = Math.Round(Convert.ToDouble(row.pd_subtotal * (row.pd_por_iva / 100)), 2, MidpointRounding.AwayFromZero);
                    row.pd_total         = row.pd_subtotal + row.pd_iva;

                    if (cmb_termino_pago.EditValue != null)
                    {
                        fa_TerminoPago_Info Info_TerminoPago = new fa_TerminoPago_Info();
                        Info_TerminoPago = lst_termino_pago.Where(q => q.IdTerminoPago == Convert.ToString(cmb_termino_pago.EditValue)).FirstOrDefault();
                        if (Info_TerminoPago.Num_Cuotas > 0)
                        {
                            crear_cuotas(Info_TerminoPago.IdTerminoPago);
                        }
                    }
                }

                if (e.Column == col_can_aprobada)
                {
                    if (row.pd_cantidad == 0)
                    {
                        row.pd_checked = false;
                    }
                    else
                    {
                        row.pd_checked = true;
                    }
                    row.pd_descuento_uni = Math.Round((row.pd_precio * row.pd_por_descuento_uni) / 100, 2, MidpointRounding.AwayFromZero);
                    row.pd_precio_final  = row.pd_precio - row.pd_descuento_uni;
                    row.pd_subtotal      = row.pd_cantidad_aprobada * row.pd_precio_final;
                    row.pd_iva           = Math.Round(Convert.ToDouble(row.pd_subtotal * (row.pd_por_iva / 100)), 2, MidpointRounding.AwayFromZero);
                    row.pd_total         = row.pd_subtotal + row.pd_iva;
                }
            }
            catch (Exception ex)
            {
                Log_Error_bus.Log_Error(ex.ToString());
                MessageBox.Show(ex.ToString(), param.Nombre_sistema, MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
Пример #25
0
        public bool modificarDB(fa_guia_remision_Info info)
        {
            try
            {
                fa_TerminoPago_Info termino_pago = new fa_TerminoPago_Info();
                fa_PuntoVta_Info    punto_venta  = new fa_PuntoVta_Info();
                termino_pago = data_tpago.get_info(info.vt_tipo_venta);
                punto_venta  = data_puntovta.get_info(info.IdEmpresa, info.IdSucursal, info.IdPuntoVta_Fact);
                int secuencia = 1;

                using (Entities_facturacion Context = new Entities_facturacion())
                {
                    fa_guia_remision Entity = Context.fa_guia_remision.FirstOrDefault(q => q.IdGuiaRemision == info.IdGuiaRemision);
                    if (Entity == null)
                    {
                        return(false);
                    }
                    Entity.CodGuiaRemision        = info.CodGuiaRemision;
                    Entity.CodDocumentoTipo       = info.CodDocumentoTipo;
                    Entity.NUAutorizacion         = info.NUAutorizacion;
                    Entity.Fecha_Autorizacion     = info.Fecha_Autorizacion;
                    Entity.IdCliente              = info.IdCliente;
                    Entity.IdTransportista        = info.IdTransportista;
                    Entity.gi_fecha               = info.gi_fecha.Date;
                    Entity.gi_plazo               = info.gi_plazo;
                    Entity.gi_fech_venc           = info.gi_fech_venc;
                    Entity.gi_FechaInicioTraslado = info.gi_FechaInicioTraslado.Date;
                    Entity.gi_FechaFinTraslado    = info.gi_FechaFinTraslado.Date;
                    Entity.placa                 = info.placa;
                    Entity.Direccion_Destino     = info.Direccion_Destino;
                    Entity.Direccion_Origen      = info.Direccion_Origen;
                    Entity.IdMotivoTraslado      = info.IdMotivoTraslado;
                    Entity.FechaModificacion     = info.FechaModificacion = DateTime.Now;
                    Entity.IdUsuarioModificacion = info.IdUsuarioModificacion;
                    Entity.gi_Observacion        = info.gi_Observacion;
                    Entity.IdCbteVta             = info.IdCbteVta;
                    Entity.IdContacto            = (info.IdContacto == 0 ? null : info.IdContacto);

                    foreach (var item in info.lst_detalle)
                    {
                        Context.fa_guia_remision_det.Add(new fa_guia_remision_det
                        {
                            IdEmpresa        = info.IdEmpresa,
                            IdSucursal       = info.IdSucursal,
                            IdBodega         = info.IdBodega,
                            IdGuiaRemision   = info.IdGuiaRemision,
                            Secuencia        = secuencia,
                            IdProducto       = item.IdProducto,
                            gi_cantidad      = item.gi_cantidad,
                            gi_detallexItems = item.gi_detallexItems,
                            gi_precio        = item.gi_precio,
                            gi_por_desc      = item.gi_por_desc,
                            gi_descuentoUni  = item.gi_descuentoUni,
                            gi_PrecioFinal   = item.gi_PrecioFinal,
                            gi_Subtotal      = item.gi_Subtotal,
                            IdCod_Impuesto   = item.IdCod_Impuesto,
                            gi_por_iva       = item.gi_por_iva,
                            gi_Iva           = item.gi_Iva,
                            gi_Total         = item.gi_Total,
                            IdCentroCosto    = item.IdCentroCosto,
                            IdEmpresa_pf     = item.IdEmpresa_pf,
                            IdSucursal_pf    = item.IdSucursal_pf,
                            IdProforma       = item.IdProforma,
                            Secuencia_pf     = item.Secuencia_pf
                        });

                        if (item.IdCbteVta != null && item.IdCbteVta != 0)
                        {
                            Context.fa_guia_remision_det_x_factura.Add(new fa_guia_remision_det_x_factura
                            {
                                IdEmpresa_fact      = info.IdEmpresa,
                                IdSucursal_fact     = info.IdSucursal,
                                IdBodega_fact       = info.IdBodega,
                                IdCbteVta_fact      = Convert.ToDecimal(item.IdCbteVta),
                                IdGuiaRemision_guia = info.IdGuiaRemision,
                                Secuencia_fact      = Convert.ToInt32(item.Secuencia_fact),
                                Secuencia_guia      = secuencia,
                                IdBodega_guia       = info.IdBodega,
                                IdSucursal_guia     = info.IdSucursal,
                                IdEmpresa_guia      = info.IdEmpresa
                            });
                        }
                        secuencia++;
                    }
                    foreach (var item in info.lst_detalle_x_factura)
                    {
                        if (item.IdCbteVta != 0)
                        {
                            Context.fa_factura_x_fa_guia_remision.Add(new fa_factura_x_fa_guia_remision
                            {
                                fa_IdEmpresa      = info.IdEmpresa,
                                fa_IdSucursal     = info.IdSucursal,
                                fa_IdBodega       = info.IdBodega,
                                fa_IdCbteVta      = item.IdCbteVta,
                                gi_IdEmpresa      = info.IdEmpresa,
                                gi_IdSucursal     = info.IdSucursal,
                                gi_IdBodega       = info.IdBodega,
                                gi_IdGuiaRemision = info.IdGuiaRemision
                            });
                        }
                    }

                    #region Factura
                    if (info.GenerarFactura == true && (info.IdCbteVta == null || info.IdCbteVta == 0))
                    {
                        fa_factura_Info info_fact = new fa_factura_Info();
                        info_fact.lst_det   = new List <fa_factura_det_Info>();
                        info_fact.lst_cuota = new List <fa_cuotas_x_doc_Info>();
                        int secuencia_fact = 1;

                        if (termino_pago != null && termino_pago.IdTerminoPago != "")
                        {
                            info.vt_fech_venc = info.gi_fecha.AddDays(termino_pago.Dias_Vct);
                        }

                        if (punto_venta != null && punto_venta.IdPuntoVta != 0)
                        {
                            info.IdCaja = punto_venta.IdCaja;
                        }

                        info_fact.IdEmpresa            = info_fact.IdEmpresa = info.IdEmpresa;
                        info_fact.IdSucursal           = info_fact.IdSucursal = info.IdSucursal;
                        info_fact.IdBodega             = info_fact.IdBodega = info.IdBodega;
                        info_fact.vt_tipoDoc           = cl_enumeradores.eTipoDocumento.FACT.ToString();
                        info_fact.vt_serie1            = info.vt_serie1;
                        info_fact.vt_serie2            = info.vt_serie2;
                        info_fact.vt_NumFactura        = info.vt_NumFactura;
                        info_fact.Fecha_Autorizacion   = DateTime.Now;
                        info_fact.vt_autorizacion      = null;
                        info_fact.vt_fecha             = info.gi_fecha.Date;
                        info_fact.vt_fech_venc         = info.vt_fech_venc; /*depende de la termino de pago*/
                        info_fact.IdCliente            = info.IdCliente;
                        info_fact.IdContacto           = info.IdContacto;
                        info_fact.IdVendedor           = info.IdVendedor;
                        info_fact.vt_plazo             = termino_pago.Dias_Vct; /**depende de la termino de pago*/
                        info_fact.vt_Observacion       = string.IsNullOrEmpty(info.ObservacionFactura) ? "" : info.ObservacionFactura;
                        info_fact.IdCatalogo_FormaPago = info.IdCatalogo_FormaPago;
                        info_fact.vt_tipo_venta        = info.vt_tipo_venta;
                        info_fact.IdCaja              = info.IdCaja; /*depende del punto de venta*/
                        info_fact.IdPuntoVta          = info.IdPuntoVta_Fact;
                        info_fact.fecha_primera_cuota = null;
                        info_fact.Fecha_Transaccion   = DateTime.Now;
                        info_fact.Estado              = info.Estado == true ? "A" : "I";
                        info_fact.esta_impresa        = null;
                        info_fact.valor_abono         = null;
                        info_fact.IdUsuario           = info.IdUsuarioCreacion;
                        info_fact.IdNivel             = 1;
                        info_fact.CodCbteVta          = info.CodGuiaRemision;

                        foreach (var item in info.lst_detalle)
                        {
                            fa_factura_det_Info info_fact_detalle = new fa_factura_det_Info
                            {
                                IdEmpresa  = info_fact.IdEmpresa,
                                IdSucursal = info_fact.IdSucursal,
                                IdBodega   = info_fact.IdBodega,
                                Secuencia  = secuencia_fact++,

                                IdProducto         = item.IdProducto,
                                vt_cantidad        = item.gi_cantidad,
                                vt_Precio          = item.gi_precio,
                                vt_PorDescUnitario = item.gi_por_desc,
                                vt_DescUnitario    = item.gi_descuentoUni,
                                vt_PrecioFinal     = item.gi_PrecioFinal,
                                vt_Subtotal        = item.gi_Subtotal,
                                vt_por_iva         = item.gi_por_iva,
                                IdCod_Impuesto_Iva = item.IdCod_Impuesto,
                                vt_iva             = item.gi_Iva,
                                vt_total           = item.gi_Total,
                                vt_detallexItems   = item.gi_detallexItems,

                                IdEmpresa_pf  = item.IdEmpresa_pf,
                                IdSucursal_pf = item.IdSucursal_pf,
                                IdProforma    = item.IdProforma,
                                Secuencia_pf  = item.Secuencia_pf,

                                IdCentroCosto       = item.IdCentroCosto,
                                IdPunto_Cargo       = item.IdPunto_cargo,
                                IdPunto_cargo_grupo = item.IdPunto_cargo_grupo,
                            };
                            info_fact.lst_det.Add(info_fact_detalle);
                        }

                        var SubtotalConDscto       = (decimal)Math.Round(info.lst_detalle.Sum(q => q.gi_Subtotal), 2, MidpointRounding.AwayFromZero);
                        var SubtotalIVASinDscto    = (decimal)Math.Round(info_fact.lst_det.Where(q => q.vt_por_iva != 0).Sum(q => q.vt_cantidad * q.vt_Precio), 2, MidpointRounding.AwayFromZero);
                        var SubtotalSinIVASinDscto = (decimal)Math.Round(info_fact.lst_det.Where(q => q.vt_por_iva == 0).Sum(q => q.vt_cantidad * q.vt_Precio), 2, MidpointRounding.AwayFromZero);
                        var Descuento              = (decimal)Math.Round(info_fact.lst_det.Sum(q => q.vt_DescUnitario * q.vt_cantidad), 2, MidpointRounding.AwayFromZero);
                        var SubtotalIVAConDscto    = (decimal)Math.Round(info_fact.lst_det.Where(q => q.vt_por_iva != 0).Sum(q => q.vt_Subtotal), 2, MidpointRounding.AwayFromZero);
                        var SubtotalSinIVAConDscto = (decimal)Math.Round(info_fact.lst_det.Where(q => q.vt_por_iva == 0).Sum(q => q.vt_Subtotal), 2, MidpointRounding.AwayFromZero);
                        var ValorIVA         = (decimal)Math.Round(info_fact.lst_det.Sum(q => q.vt_iva), 2, MidpointRounding.AwayFromZero);
                        var SubtotalSinDscto = SubtotalIVASinDscto + SubtotalSinIVASinDscto;
                        var Total            = SubtotalConDscto + ValorIVA;

                        info_fact.info_resumen = new fa_factura_resumen_Info
                        {
                            IdEmpresa  = info_fact.IdEmpresa,
                            IdSucursal = info_fact.IdSucursal,
                            IdBodega   = info_fact.IdBodega,
                            // IdCbteVta = info_fact.IdCbteVta,

                            SubtotalConDscto       = SubtotalConDscto,
                            SubtotalIVAConDscto    = SubtotalIVAConDscto,
                            SubtotalIVASinDscto    = SubtotalIVASinDscto,
                            SubtotalSinDscto       = SubtotalSinDscto,
                            SubtotalSinIVAConDscto = SubtotalSinIVAConDscto,
                            SubtotalSinIVASinDscto = SubtotalSinIVASinDscto,

                            Total         = Total,
                            Descuento     = Descuento,
                            ValorEfectivo = 0,
                            ValorIVA      = ValorIVA,
                            Cambio        = Total,
                        };
                        data_fact.guardarDB(info_fact);
                        Entity.IdCbteVta = info_fact.IdCbteVta;

                        #region Relacion Guia
                        Context.fa_factura_x_fa_guia_remision.Add(new fa_factura_x_fa_guia_remision
                        {
                            fa_IdEmpresa      = info.IdEmpresa,
                            fa_IdSucursal     = info.IdSucursal,
                            fa_IdBodega       = info.IdBodega,
                            fa_IdCbteVta      = info_fact.IdCbteVta,
                            gi_IdEmpresa      = info.IdEmpresa,
                            gi_IdSucursal     = info.IdSucursal,
                            gi_IdBodega       = info.IdBodega,
                            gi_IdGuiaRemision = info.IdGuiaRemision
                        });
                        secuencia = 1;
                        foreach (var item in info.lst_detalle)
                        {
                            Context.fa_guia_remision_det_x_factura.Add(new fa_guia_remision_det_x_factura
                            {
                                IdEmpresa_fact  = info.IdEmpresa,
                                IdSucursal_fact = info.IdSucursal,
                                IdBodega_fact   = info.IdBodega,
                                IdCbteVta_fact  = info_fact.IdCbteVta,
                                Secuencia_fact  = secuencia,

                                IdEmpresa_guia      = info.IdEmpresa,
                                IdSucursal_guia     = info.IdSucursal,
                                IdBodega_guia       = info.IdBodega,
                                IdGuiaRemision_guia = info.IdGuiaRemision,
                                Secuencia_guia      = secuencia++,
                            });
                        }
                        #endregion
                    }
                    #endregion

                    Context.SaveChanges();
                }
                return(true);
            }
            catch (Exception ex)
            {
                tb_LogError_Data LogData = new tb_LogError_Data();
                LogData.GuardarDB(new tb_LogError_Info {
                    Descripcion = ex.Message, InnerException = ex.InnerException == null ? null : ex.InnerException.Message, Clase = "fa_guia_remision_Data", Metodo = "modificarDB", IdUsuario = info.IdUsuarioCreacion
                });
                return(false);
            }
        }