private void Cargar_combos_sucursal()
        {
            try
            {
                // carga combo tipo movi
                int IdSucursal = 0;
                IdSucursal = ucGe_Sucursal.get_SucursalInfo().IdSucursal;
                cmbTipoMovi.cargar_TipoMotivo(IdSucursal, 0, "-", "");

                // carga combo productos grid
                Bus_Producto = new in_producto_Bus();
                listProducto = new List <in_Producto_Info>();
                //listProducto = Bus_Producto.Get_list_Producto(param.IdEmpresa, IdSucursal);
                listProducto = Bus_Producto.Get_list_Producto(param.IdEmpresa);
                cmbProducto_grid.DataSource = listProducto;

                // carga bodega
                Bus_Bodega               = new tb_Bodega_Bus();
                list_bodega              = new List <tb_Bodega_Info>();
                list_bodega              = Bus_Bodega.Get_List_Bodega(param.IdEmpresa, IdSucursal);
                cmb_bodega.DataSource    = list_bodega;
                cmb_bodega.DisplayMember = "bo_Descripcion";
                cmb_bodega.ValueMember   = "IdBodega";
            }
            catch (Exception ex)
            {
                Log_Error_bus = new tb_sis_Log_Error_Vzen_Bus();
                Log_Error_bus.Log_Error(ex.ToString());
                MessageBox.Show(ex.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
 public frmFa_proforma_mant()
 {
     InitializeComponent();
     info_proforma = new fa_proforma_Info();
     bus_proforma  = new fa_proforma_Bus();
     param         = cl_parametrosGenerales_Bus.Instance;
     Log_Error_bus = new tb_sis_Log_Error_Vzen_Bus();
     event_delegate_frmFa_proforma_mant_FormClosed += frmFa_proforma_mant_event_delegate_frmFa_proforma_mant_FormClosed;
     lst_impuesto     = new List <tb_sis_impuesto_Info>();
     bus_impuesto     = new tb_sis_impuesto_Bus();
     lst_producto     = new List <in_Producto_Info>();
     bus_producto     = new in_producto_Bus();
     info_fa_param    = new fa_parametro_info();
     bus_fa_param     = new fa_parametro_Bus();
     lst_termino_pago = new List <fa_TerminoPago_Info>();
     bus_termino_pago = new fa_TerminoPago_Bus();
     blst_det         = new BindingList <fa_proforma_det_Info>();
     lst_sucursal     = new List <tb_Sucursal_Info>();
     bus_sucursal     = new tb_Sucursal_Bus();
     bus_proforma_det = new fa_proforma_det_Bus();
     lst_bodega       = new List <tb_Bodega_Info>();
     bus_bodega       = new tb_Bodega_Bus();
     lst_vendedor     = new List <fa_Vendedor_Info>();
     bus_vendedor     = new fa_Vendedor_Bus();
 }
Exemplo n.º 3
0
 public frmApp_aprobaciones()
 {
     InitializeComponent();
     param      = cl_parametrosGenerales_Bus.Instance;
     bus_bodega = new tb_Bodega_Bus();
     bus_det    = new tbl_movimientos_det_Bus();
 }
Exemplo n.º 4
0
 public FrmIn_TransferenciaConGuiaMantenimiento()
 {
     InitializeComponent();
     param             = cl_parametrosGenerales_Bus.Instance;
     busLogError       = new tb_sis_Log_Error_Vzen_Bus();
     busTransferencia  = new in_transferencia_bus();
     busProducto       = new in_producto_Bus();
     busSucursal       = new tb_Sucursal_Bus();
     busBodega         = new tb_Bodega_Bus();
     busUnidadMedida   = new in_UnidadMedida_Bus();
     lstBodega         = new List <tb_Bodega_Info>();
     lstSucursal       = new List <tb_Sucursal_Info>();
     blstDetalle       = new BindingList <in_transferencia_det_Info>();
     infoTransferencia = new in_transferencia_Info();
     busDet            = new in_Transferencia_det_Bus();
     event_delegate_FrmIn_TransferenciaConGuiaMantenimiento_FormClosed += FrmIn_TransferenciaConGuiaMantenimiento_event_delegate_FrmIn_TransferenciaConGuiaMantenimiento_FormClosed;
     busParam         = new in_Parametro_Bus();
     infoParam        = new in_Parametro_Info();
     lstProducto      = new List <in_Producto_Info>();
     busIngEgr        = new in_Ing_Egr_Inven_Bus();
     busPedido        = new com_OrdenPedido_Bus();
     lstOCDet         = new List <in_transferencia_det_Info>();
     busTransportista = new tb_transportista_Bus();
     lstTransportista = new List <tb_transportista_Info>();
     busCatalogo      = new in_Catalogo_Bus();
     busGuia          = new in_Guia_x_traspaso_bodega_Bus();
 }
Exemplo n.º 5
0
 Boolean AnularDatos()
 {
     try
     {
         string msg = "";
         get_Bodega();
         tb_Bodega_Bus bus_pvta = new tb_Bodega_Bus();
         if (ValidarDatos())
         {
             if (bus_pvta.EliminarDB(info, ref msg))
             {
                 ucGe_Menu.Enabled_bntAnular = false;
                 MessageBox.Show("Bodega Anulada Exitosamente", "SISTEMA", MessageBoxButtons.OK, MessageBoxIcon.Information);
             }
             else
             {
                 MessageBox.Show(msg, "SISTEMA", MessageBoxButtons.OK, MessageBoxIcon.Information);
             }
         }
         return(true);
     }
     catch (Exception ex)
     {
         Log_Error_bus.Log_Error(ex.ToString());
         MessageBox.Show(ex.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
         return(false);
     }
 }
Exemplo n.º 6
0
        Boolean GuardarDatos()
        {
            try
            {
                Boolean bolResult = false;
                string  msg       = "";
                get_Bodega();
                tb_Bodega_Bus bus_pvta = new tb_Bodega_Bus();
                if (ValidarDatos())
                {
                    switch (_Accion)
                    {
                    case Cl_Enumeradores.eTipo_action.grabar:
                        if (bus_pvta.GrabarDB(info, ref idBod, ref msg))
                        {
                            bolResult = true;
                            ucGe_Menu.Enabled_btnGuardar         = false;
                            ucGe_Menu.Enabled_bntGuardar_y_Salir = false;
                            MessageBox.Show("Bodega Guardada Exitosamente", "SISTEMA", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        }
                        else
                        {
                            MessageBox.Show(msg, "SISTEMA", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        }

                        break;

                    case Cl_Enumeradores.eTipo_action.actualizar:

                        if (bus_pvta.ModificarDB(info, ref msg))
                        {
                            bolResult = true;
                            ucGe_Menu.Enabled_btnGuardar         = false;
                            ucGe_Menu.Enabled_bntGuardar_y_Salir = false;
                            MessageBox.Show("Bodega Modificada Exitosamente", "SISTEMA", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        }
                        else
                        {
                            MessageBox.Show(msg, "SISTEMA", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        }

                        break;

                    default:
                        break;
                    }
                }
                return(bolResult);
            }
            catch (Exception ex)
            {
                Log_Error_bus.Log_Error(ex.ToString());
                MessageBox.Show(ex.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return(false);
            }
        }
Exemplo n.º 7
0
 public frmApp_ProductoPorBodega()
 {
     InitializeComponent();
     busProductoPorBodega = new tbl_producto_x_tbl_bodega_Bus();
     param          = cl_parametrosGenerales_Bus.Instance;
     busSucursal    = new tb_Sucursal_Bus();
     busBodega      = new tb_Bodega_Bus();
     lstBodega      = new List <tb_Bodega_Info>();
     blstAsignado   = new BindingList <tbl_producto_x_tbl_bodega_Info>();
     blstNoAsignado = new BindingList <tbl_producto_x_tbl_bodega_Info>();
 }
Exemplo n.º 8
0
 public frmFa_Bodega_Consulta(int IdEmpresa, int IdSucursal)  : this()
 {
     try
     {
         tb_Bodega_Bus _Bodegas_b = new tb_Bodega_Bus();
         gridControlBodega.DataSource = _Bodegas_b.Get_List_Bodega(IdEmpresa, IdSucursal).FindAll(c => c.Estado == true);
     }
     catch (Exception ex)
     {
         Log_Error_bus.Log_Error(ex.ToString());
         MessageBox.Show(ex.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
     }
 }
Exemplo n.º 9
0
        public void load_PVenta(int id)
        {
            try
            {
                tb_Bodega_Bus bus_pvta = new tb_Bodega_Bus();

                lista_bodegas = bus_pvta.Get_List_Bodega(param.IdEmpresa, id);;
            }
            catch (Exception ex)
            {
                Log_Error_bus.Log_Error(ex.ToString());
                MessageBox.Show(ex.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
        string Get_EstadoApro(int IdEmpresa, int IdSucursal, int IdBodega, string IdEstadoAproba_Param)
        {
            try
            {
                string        IdEstadoAproba = "";
                tb_Bodega_Bus busBode        = new tb_Bodega_Bus();

                IdEstadoAproba = busBode.Get_Info_Bodega(IdEmpresa, IdSucursal, IdBodega).IdEstadoAproba_x_Ing_Egr_Inven;
                if (IdEstadoAproba == null || IdEstadoAproba == "")
                {
                    IdEstadoAproba = IdEstadoAproba_Param;
                }

                return(IdEstadoAproba);
            }
            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("", "ObtenerEstadoApro", ex.Message), ex)
                      {
                          EntityType = typeof(in_Ing_Egr_Inven_Bus)
                      };
            }
        }
        public Boolean GuardarDB(com_solicitud_compra_Info info, ref string msg)
        {
            try
            {
                Boolean res = true;

                if (validarObjeto(info, ref msg))
                {
                    odata.GuardarDB(info);

                    #region grabar en tabla com_solicitud_compra_det_aprobacion

                    // consultar el detalle solicitud

                    com_solicitud_compra_det_Bus         bus_DetSol = new com_solicitud_compra_det_Bus();
                    List <com_solicitud_compra_det_Info> lisDetSol  = new List <com_solicitud_compra_det_Info>();
                    lisDetSol = bus_DetSol.Get_list_DetalleLstSolicitudCompra(info.IdEmpresa, info.IdSucursal, info.IdSolicitudCompra);

                    if (lisDetSol.Count() == 0)
                    {
                        res = false;
                    }

                    List <com_solicitud_compra_det_aprobacion_Info> listDetApr = new List <com_solicitud_compra_det_aprobacion_Info>();

                    List <com_solicitud_compra_det_pre_aprobacion_Info> listDetPreApr = new List <com_solicitud_compra_det_pre_aprobacion_Info>();

                    foreach (var item in lisDetSol)
                    {
                        com_solicitud_compra_det_aprobacion_Info infoDetApr = new com_solicitud_compra_det_aprobacion_Info();
                        infoDetApr.Checked           = true;
                        infoDetApr.IdEmpresa         = item.IdEmpresa;
                        infoDetApr.IdSucursal_SC     = item.IdSucursal;
                        infoDetApr.IdSolicitudCompra = item.IdSolicitudCompra;
                        infoDetApr.Secuencia_SC      = item.Secuencia;
                        infoDetApr.IdProducto_SC     = item.IdProducto;
                        infoDetApr.NomProducto_SC    = item.NomProducto;
                        infoDetApr.Cantidad_aprobada = item.do_Cantidad;

                        com_parametro_Bus  bus_param  = new com_parametro_Bus();
                        com_parametro_Info info_param = new com_parametro_Info();
                        info_param = bus_param.Get_Info_parametro(item.IdEmpresa);

                        infoDetApr.IdEstadoAprobacion = info_param.IdEstadoAprobacion_SolCompra;

                        infoDetApr.IdProveedor_SC      = null;
                        infoDetApr.IdUsuarioAprueba    = param.IdUsuario;
                        infoDetApr.FechaHoraAprobacion = param.Fecha_Transac;
                        infoDetApr.do_observacion      = "";

                        listDetApr.Add(infoDetApr);


                        //preaprobacion

                        com_solicitud_compra_det_pre_aprobacion_Info infoDetPreApr = new com_solicitud_compra_det_pre_aprobacion_Info();
                        infoDetPreApr.IdEmpresa           = item.IdEmpresa;
                        infoDetPreApr.IdSucursal_SC       = item.IdSucursal;
                        infoDetPreApr.IdSolicitudCompra   = item.IdSolicitudCompra;
                        infoDetPreApr.Secuencia_SC        = item.Secuencia;
                        infoDetPreApr.IdEstadoAprobacion  = info_param.IdEstadoAprobacion_SolCompra;
                        infoDetPreApr.IdUsuarioAprueba    = param.IdUsuario;
                        infoDetPreApr.FechaHoraAprobacion = DateTime.Now;
                        infoDetPreApr.observacion         = "**Pendiente**";

                        listDetPreApr.Add(infoDetPreApr);
                    }

                    com_solicitud_compra_det_aprobacion_Bus Bus_DetAproba = new com_solicitud_compra_det_aprobacion_Bus();
                    string validaMotivo = "";
                    if (Bus_DetAproba.Validar_objeto_AprobSolComp(listDetApr, validaMotivo, ref msg))
                    {
                        com_solicitud_compra_det_aprobacion_Data odataDetApr = new com_solicitud_compra_det_aprobacion_Data();
                        odataDetApr.GuardarDB(listDetApr);


                        com_solicitud_compra_det_pre_aprobacion_Data odataDetPreApr = new com_solicitud_compra_det_pre_aprobacion_Data();
                        odataDetPreApr.GuardarDB(listDetPreApr);
                    }

                    #endregion

                    #region grabar en tabla in_producto_x_tb_bodega

                    // 1. obtener el detalle solicitud compra

                    com_solicitud_compra_det_Bus         bus_DetSoli = new com_solicitud_compra_det_Bus();
                    List <com_solicitud_compra_det_Info> listDetSoli = new List <com_solicitud_compra_det_Info>();
                    listDetSoli = bus_DetSoli.Get_list_DetalleLstSolicitudCompra(info.IdEmpresa, info.IdSucursal, info.IdSolicitudCompra);

                    // 2. recorro el detalle solicitud
                    foreach (var item in lisDetSol)
                    {
                        in_producto_x_tb_bodega_Data DataInserte = new in_producto_x_tb_bodega_Data();

                        // 3. Obtengo bodega Sucursal

                        int IdBodega = 0;

                        tb_Bodega_Bus         bus_Bodega = new tb_Bodega_Bus();
                        List <tb_Bodega_Info> listBod    = new List <tb_Bodega_Info>();
                        listBod = bus_Bodega.Get_List_Bodega(item.IdEmpresa, item.IdSucursal);

                        if (listBod.Count() == 0)
                        {
                            // crear bodega Sucursal
                            tb_Bodega_Info infoBodega = new tb_Bodega_Info();
                            infoBodega.IdEmpresa      = item.IdEmpresa;
                            infoBodega.IdSucursal     = item.IdSucursal;
                            infoBodega.bo_Descripcion = "Bodega Principal";
                            infoBodega.Fecha_Transac  = param.Fecha_Transac;


                            int    id   = 0;
                            string msg1 = "";
                            bus_Bodega.GrabarDB(infoBodega, ref id, ref msg1);
                            IdBodega = id;
                        }
                        else
                        {
                            tb_Bodega_Info infoBod = listBod.FirstOrDefault();
                            IdBodega = infoBod.IdBodega;
                        }

                        //// 4. Verifico producto (in_producto_x_tb_bodega)
                        //if (!DataInserte.VerificarExisteProductoXSucursalXBodega(item.IdEmpresa, item.IdSucursal, IdBodega, Convert.ToDecimal(item.IdProducto)))
                        //{
                        //    // 5. Obtengo producto (in_Producto)
                        //    in_Producto_data odataP = new in_Producto_data();
                        //    in_Producto_Info infoPro = new in_Producto_Info();
                        //    infoPro = odataP.BuscarProducto(Convert.ToDecimal(item.IdProducto), item.IdEmpresa);

                        //    in_producto_x_tb_bodega_Info infoProxBod = new in_producto_x_tb_bodega_Info();

                        //    infoProxBod.IdEmpresa = item.IdEmpresa;
                        //    infoProxBod.IdSucursal = item.IdSucursal;
                        //    infoProxBod.IdBodega = IdBodega;
                        //    infoProxBod.IdProducto = Convert.ToDecimal(item.IdProducto);
                        //    infoProxBod.pr_precio_publico = infoPro.pr_precio_publico;
                        //    infoProxBod.pr_precio_mayor = infoPro.pr_precio_mayor;
                        //    infoProxBod.pr_precio_puerta = 0;
                        //    infoProxBod.pr_precio_minimo = infoPro.pr_precio_minimo;
                        //    infoProxBod.pr_Por_descuento = infoPro.Porc_Descuento;
                        //    infoProxBod.pr_stock = infoPro.pr_stock;
                        //    infoProxBod.pr_stock_maximo = infoPro.pr_stock_maximo;
                        //    infoProxBod.pr_stock_minimo = infoPro.pr_stock_minimo;
                        //    infoProxBod.pr_costo_fob = infoPro.pr_costo_fob;
                        //    infoProxBod.pr_costo_CIF = infoPro.pr_costo_CIF;
                        //    infoProxBod.pr_costo_promedio = infoPro.pr_costo_promedio;

                        //    // 5. Inserto (in_producto_x_tb_bodega)
                        //    string mensajea = "";
                        //    DataInserte.GrabaDBUnItem(infoProxBod, info.IdEmpresa, ref mensajea);
                        //}
                        //else
                        //{

                        //}
                    }
                    #endregion
                }
                else
                {
                    res = false;
                }

                return(res);
            }
            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("", "GuardarDB", ex.Message), ex)
                      {
                          EntityType = typeof(com_solicitud_compra_Bus)
                      };
            }
        }
Exemplo n.º 12
0
        public Boolean Modificar_Num_Retencion(cp_retencion_Info Info_Retencion, ref string mensajeError)
        {
            try
            {
                Boolean res = false;


                tb_sis_Documento_Tipo_Talonario_Bus  busTalonario  = new tb_sis_Documento_Tipo_Talonario_Bus();
                tb_sis_Documento_Tipo_Talonario_Info infoTalonario = new tb_sis_Documento_Tipo_Talonario_Info();
                tb_Sucursal_Bus Bus_Sucu   = new tb_Sucursal_Bus();
                tb_Bodega_Bus   Bus_bodega = new tb_Bodega_Bus();

                string mensajeDocumentoDupli = "";
                string cod_estable           = "";
                string cod_pto_emision       = "";

                Info_Retencion.CodDocumentoTipo = string.IsNullOrEmpty(Info_Retencion.CodDocumentoTipo) ? "RETEN" : Info_Retencion.CodDocumentoTipo;


                // el objeto viene sin serie o sin # factura tomo el ultimo num de factura del talonario
                if (Info_Retencion.serie1 == "" || Info_Retencion.serie1 == null || Info_Retencion.serie2 == "" || Info_Retencion.serie2 == null ||
                    Info_Retencion.NumRetencion == "" || Info_Retencion.NumRetencion == null)
                {
                    cod_estable     = Bus_Sucu.Get_Cod_Establecimiento_x_Sucursal(Info_Retencion.IdEmpresa, param.IdSucursal);
                    cod_pto_emision = Bus_bodega.Get_cod_pto_emision_x_Bodega(Info_Retencion.IdEmpresa, param.IdSucursal, 1);

                    infoTalonario = busTalonario.Get_Info_Primer_Documento_no_usado(Info_Retencion.IdEmpresa, cod_estable, cod_pto_emision, Info_Retencion.CodDocumentoTipo
                                                                                    , Info_Retencion.EsDocumentoElectronico);


                    if (infoTalonario.NumDocumento == null)
                    {
                        mensajeError = "No hay talonarios para Establecimiento=" + cod_estable + " y punto de emision=" + cod_pto_emision;
                        throw new Core.Erp.Info.Log_Exception.DalException(string.Format("", "no hay talonario activos", mensajeError))
                              {
                                  EntityType = typeof(cp_retencion_Bus)
                              };
                    }

                    Info_Retencion.serie1       = infoTalonario.Establecimiento;
                    Info_Retencion.serie2       = infoTalonario.PuntoEmision;
                    Info_Retencion.NumRetencion = infoTalonario.NumDocumento;
                }
                else
                {
                    // se puede dar si mas de un usario estan haciendo la factura y tienen en memoria o en la pantalla el mismo talonario
                    //verifico el numero de factura si esta usado
                    infoTalonario.Establecimiento          = Info_Retencion.serie1;
                    infoTalonario.PuntoEmision             = Info_Retencion.serie2;
                    infoTalonario.NumDocumento             = Info_Retencion.NumRetencion;
                    infoTalonario.IdEmpresa                = Info_Retencion.IdEmpresa;
                    infoTalonario.CodDocumentoTipo         = Info_Retencion.CodDocumentoTipo;
                    infoTalonario.es_Documento_electronico = Info_Retencion.EsDocumentoElectronico;


                    if (busTalonario.Documento_talonario_esta_Usado(infoTalonario, ref mensajeError, ref mensajeDocumentoDupli))
                    {
                        //si esta en usado busco el siguiente
                        cod_estable     = Bus_Sucu.Get_Cod_Establecimiento_x_Sucursal(Info_Retencion.IdEmpresa, param.IdSucursal);
                        cod_pto_emision = Bus_bodega.Get_cod_pto_emision_x_Bodega(Info_Retencion.IdEmpresa, param.IdSucursal, 1);

                        infoTalonario = busTalonario.Get_Info_Primer_Documento_no_usado(Info_Retencion.IdEmpresa, cod_estable,
                                                                                        cod_pto_emision, Info_Retencion.CodDocumentoTipo, Info_Retencion.EsDocumentoElectronico);

                        if (infoTalonario.NumDocumento == null)
                        {
                            throw new Core.Erp.Info.Log_Exception.DalException(string.Format("", "no hay talonario activos", mensajeError))
                                  {
                                      EntityType = typeof(cp_retencion_Bus)
                                  };
                        }

                        Info_Retencion.serie1       = infoTalonario.Establecimiento;
                        Info_Retencion.serie2       = infoTalonario.PuntoEmision;
                        Info_Retencion.NumRetencion = infoTalonario.NumDocumento;

                        if (!infoTalonario.es_Documento_electronico)
                        {
                            //si no es documento electronico le actualizo el numero de autorizacion y la fecha de autorizacion
                            Info_Retencion.NAutorizacion      = infoTalonario.NumAutorizacion;
                            Info_Retencion.Fecha_Autorizacion = DateTime.Now.Date;
                        }
                    }
                    else
                    {
                        if (!infoTalonario.es_Documento_electronico)
                        {
                            //Si no esta siendo usado, si no es documento electronico le actualizo el numero de autorizacion y la fecha de autorizacion
                            infoTalonario = busTalonario.Get_Info_Documento_Tipo_Talonario(Info_Retencion.IdEmpresa, Info_Retencion.CodDocumentoTipo, cod_estable, cod_pto_emision, Info_Retencion.NumRetencion);


                            Info_Retencion.NAutorizacion      = infoTalonario.NumAutorizacion;
                            Info_Retencion.Fecha_Autorizacion = DateTime.Now.Date;
                        }
                    }
                }

                res = data_retencion.Modificar_Num_Retencion(Info_Retencion, ref mensajeError);
                busTalonario.Modificar_Estado_Usado(infoTalonario, ref mensajeError);

                return(res);
            }
            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("", "ModificarNRetencion", ex.Message), ex)
                      {
                          EntityType = typeof(cp_retencion_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)
                      };
            }
        }
        Boolean Validar_y_corregir_objeto(ref in_Guia_x_traspaso_bodega_Info Info_Guia, ref string msg)
        {
            try
            {
                #region 'Validaciones'
                /*--- validaciones */



                if (Info_Guia.IdEmpresa == 0)
                {
                    msg = "La variable estan en cero... IdEmpresa == 0  ";
                    return(false);
                }



                foreach (var item in Info_Guia.list_detalle_Guia)
                {
                    if (item.Cantidad_enviar == 0 || item.Cantidad_enviar == null)
                    {
                        msg = "Ingrese la cantidad de traspaso para el item : " + item.pr_descripcion + "  ";
                        return(false);
                    }
                }



                foreach (var item in Info_Guia.list_detalle_Guia_Sin_OC)
                {
                    if (item.Cantidad_enviar == 0 || item.Cantidad_enviar == null)
                    {
                        msg = "Ingrese la cantidad de traspaso para el item : " + item.nom_producto + "  ";
                        return(false);
                    }
                }


                if (Info_Guia.IdEmpresa <= 0 && Info_Guia.IdSucursal_Partida <= 0 && Info_Guia.IdSucursal_Llegada <= 0)
                {
                    msg = "Error en la cabecera de fact uno de los PK es <=0";
                    throw new Core.Erp.Info.Log_Exception.DalException(string.Format("", "Validaciones", msg))
                          {
                              EntityType = typeof(in_Guia_x_traspaso_bodega_Bus)
                          };
                }


                if (Info_Guia.IdTransportista <= 0)
                {
                    msg = "Erro en la cabecera de guia IdTransportista es <=0";
                    throw new Core.Erp.Info.Log_Exception.DalException(string.Format("", "Validaciones", msg))
                          {
                              EntityType = typeof(in_Guia_x_traspaso_bodega_Bus)
                          };
                }


                if (Info_Guia.IdMotivo_Traslado == "")
                {
                    msg = "Erro en la cabecera de IdMotivo_Traslado esta en blanco";
                    throw new Core.Erp.Info.Log_Exception.DalException(string.Format("", "Validaciones", msg))
                          {
                              EntityType = typeof(in_Guia_x_traspaso_bodega_Bus)
                          };
                }


                if (Info_Guia.list_detalle_Guia.Count == 0 && Info_Guia.list_detalle_Guia_Sin_OC.Count == 0)
                {
                    msg = "la guia  no tiene detalle ";
                    throw new Core.Erp.Info.Log_Exception.DalException(string.Format("", "Validaciones", msg))
                          {
                              EntityType = typeof(in_Guia_x_traspaso_bodega_Bus)
                          };
                }



                /*--- Fin validaciones */


                /*--- corrigiendo data */

                Info_Guia.Estado = (string.IsNullOrEmpty(Info_Guia.Estado) == true) ? "A" : Info_Guia.Estado;
                Info_Guia.Fecha  = Convert.ToDateTime(Info_Guia.Fecha).Date;



                tb_sis_Documento_Tipo_Talonario_Bus  busTalonario  = new tb_sis_Documento_Tipo_Talonario_Bus();
                tb_sis_Documento_Tipo_Talonario_Info infoTalonario = new tb_sis_Documento_Tipo_Talonario_Info();
                tb_Sucursal_Bus Bus_Sucu   = new tb_Sucursal_Bus();
                tb_Bodega_Bus   Bus_bodega = new tb_Bodega_Bus();

                string mensajeDocumentoDupli = "";
                string cod_estable           = "";
                string cod_pto_emision       = "";

                Info_Guia.CodDocumentoTipo = Cl_Enumeradores.eTipoDocumento_Talonario.GUIA.ToString();


                // el objeto viene sin serie o sin # factura tomo el ultimo num de factura del talonario
                if (Info_Guia.IdEstablecimiento == "" || Info_Guia.IdEstablecimiento == null || Info_Guia.IdPuntoEmision == "" || Info_Guia.IdPuntoEmision == null ||
                    Info_Guia.NumDocumento_Guia == "" || Info_Guia.NumDocumento_Guia == null)
                {
                    cod_estable     = Bus_Sucu.Get_Cod_Establecimiento_x_Sucursal(Info_Guia.IdEmpresa, Convert.ToInt32(Info_Guia.IdSucursal_Partida));
                    cod_pto_emision = Bus_bodega.Get_cod_pto_emision_x_Bodega(Info_Guia.IdEmpresa, Convert.ToInt32(Info_Guia.IdSucursal_Partida), 1); // la tabla no tiene bodega
                    infoTalonario   = busTalonario.Get_Info_Primer_Documento_no_usado(Info_Guia.IdEmpresa, cod_pto_emision, cod_estable, Info_Guia.CodDocumentoTipo, Info_Guia.Es_electronica);

                    if (infoTalonario.NumDocumento == null)
                    {
                        msg = "No hay talonarios para Establecimiento=" + cod_estable + " y punto de emision=" + cod_pto_emision;
                        throw new Core.Erp.Info.Log_Exception.DalException(string.Format("", "no hay talonario activos", msg))
                              {
                                  EntityType = typeof(in_Guia_x_traspaso_bodega_Bus)
                              };
                    }

                    Info_Guia.IdEstablecimiento = infoTalonario.Establecimiento;
                    Info_Guia.IdPuntoEmision    = infoTalonario.PuntoEmision;
                    Info_Guia.NumDocumento_Guia = infoTalonario.NumDocumento;
                }
                else
                {
                    // se puede dar si mas de un usario estan haciendo la factura y tienen en memoria o en la pantalla el mismo talonario
                    //verifico el numero de factura si esta usado
                    infoTalonario.Establecimiento          = Info_Guia.IdEstablecimiento;
                    infoTalonario.PuntoEmision             = Info_Guia.IdPuntoEmision;
                    infoTalonario.NumDocumento             = Info_Guia.NumDocumento_Guia;
                    infoTalonario.IdEmpresa                = Info_Guia.IdEmpresa;
                    infoTalonario.CodDocumentoTipo         = Info_Guia.CodDocumentoTipo;
                    infoTalonario.es_Documento_electronico = Info_Guia.Es_electronica;


                    if (Info_Guia.IdGuia == 0 && busTalonario.Documento_talonario_esta_Usado(infoTalonario, ref msg, ref mensajeDocumentoDupli))
                    {
                        //si esta en usado busco el siguiente
                        cod_estable     = Bus_Sucu.Get_Cod_Establecimiento_x_Sucursal(Info_Guia.IdEmpresa, Convert.ToInt32(Info_Guia.IdSucursal_Partida));
                        cod_pto_emision = Bus_bodega.Get_cod_pto_emision_x_Bodega(Info_Guia.IdEmpresa, Convert.ToInt32(Info_Guia.IdPuntoEmision), 1);

                        infoTalonario = busTalonario.Get_Info_Primer_Documento_no_usado(Info_Guia.IdEmpresa, cod_pto_emision, cod_estable, Info_Guia.CodDocumentoTipo, Info_Guia.Es_electronica);

                        if (infoTalonario.NumDocumento == null)
                        {
                            throw new Core.Erp.Info.Log_Exception.DalException(string.Format("", "no hay talonario activos", msg))
                                  {
                                      EntityType = typeof(in_Guia_x_traspaso_bodega_Bus)
                                  };
                        }

                        Info_Guia.IdEstablecimiento = infoTalonario.Establecimiento;
                        Info_Guia.IdPuntoEmision    = infoTalonario.PuntoEmision;
                        Info_Guia.NumDocumento_Guia = infoTalonario.NumDocumento;
                    }
                }


                /*--- corrigiendo data */

                #endregion

                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("", "Validar_y_corregir_objeto", ex.Message), ex)
                      {
                          EntityType = typeof(in_Guia_x_traspaso_bodega_Bus)
                      };
            }
        }